Looks the same, acts the same.
In order for this to happen, we need one bit of code to work for the internal representations of all different kinds of content within what is traditionally the domain of all different kinds of applications. This means we need a common internal representation for common bits. XML.
Loose couplings between signals and behavior = good for flexibility, bad for consistency
People should never have to wait for feedback. Feedback should never require people to stop what they are doing. If you try action MR-442 and it's wrong, you should be able to immediately try MR-441 without having to dismiss a dialog box or some random thing. (loosely from here, search for "new and random things")
The user should never have to wait to move around the interface. Some things will make the computer scratch its head, and we can wait for these. But the user should always be free to move around and go somewhere else to do something less intensive while the computer is thinking.