manufacturers must pass the Android Compatability Test Suite[1] in order to be granted rights to the android trademark and the permission to refer to their device as android[2].
the problem is CTS tests API consistency with the goal of preventing platform fragmentation for app developers. there is also a separate set of tests that specify minimum hardware requirements for each version of android, and specs such as battery life, etc.
compatibility and android brand licensing also requires a certain set of minimum apps, such as the phone dialer, calendar, contacts, music player, etc. but (and quote[3]):
> The Android upstream project defines a number of core applications, such as a phone dialer, calendar, contacts book, music player, and so on. Device implementers MAY replace these applications with alternative versions.
and further -- the gmail, chat etc. apps are proprietary Google apps, and there are various licensing reasons why they can not be enforced as part of 'compatibility'.
API compatibility is good, but UI and app compatibility is very flexible - and given such flexibility, carriers will almost always go the crawpware route.
[1] http://source.android.com/compatibility/android-cts-manual-r...
[2] http://source.android.com/compatibility/index.html
[3] http://source.android.com/compatibility/2.3/android-2.3.3-cd...