1) Upgrades are easy and speedy, as long as the site is not modified. If it is modified, there's no way to avoid any problems, no matter how system is designed. We are gradually improving separation of components (modules, templates, DB) and that's as much as one can possibly do in web script.
2) What exactly do you mean by API? What kind of functionality?
2) What exactly do you mean by API? What kind of functionality?