Why Google wants to kill SD cards, and what's holding them back
Android hardware evolution
Android has built its market share on two things: customization and cost. In the early days of Android, a big concern was in keeping down the cost of phones in order to be competitive in the booming modern smartphone market dominated by the iPhone. One easy way to keep down costs was to have limited internal storage and rely on SD cards for additional storage. This kept handset prices down by passing along the costs to consumers. It also allowed for more customization, because users who didn't need as much storage could just buy a smaller SD card, and those with higher-end needs could get that as well.
However, the reliance on SD card storage quickly became a major bottleneck in the Android ecosystem. Apps couldn't get too big, because phones had limited storage, and the Android system itself couldn't outgrow that storage either. So, as a stop-gap measure, Google introduced Apps2SD with Android 2.2 (Froyo), which allowed users to move certain apps to the SD card and run from there. This feature has been troublesome in itself, because even though it only required one new line of code, developers were slow to update apps and allow movement to the SD card. Additionally, users who needed the feature the most were often the last to get it, because those users had older and lower-end phones, which are notoriously the last to be updated by manufacturers.
SD card limitations
We say that SD card storage was a stop-gap measure, because beyond app and OS compatibility troubles, it had inherent functionality limitations. It clearly wasn't a full solution because running an app from the SD card led to one huge limitation with a number of consequences: apps on the SD card can't auto-load on a device restart.
This means that when you reboot your phone, any apps on the SD card need to be manually launched in order to take advantage of automatic functions like background updates, or push notifications. For example, if you have the official Twitter app installed on your SD card, you will have to launch the app and login every time you reboot, because the app won't do it automatically. Additionally, there will be a delay in rebooting your phone and being able to access any apps or data on the SD card, and of course delays of any kind are the worst offense against the laws of Google.
Another big limitation is that apps on SD have widgets disabled. So, when it comes to apps that take up a lot of storage, like say the Google+ app, users constantly have to decide if having the widget available is worth the extra space taken up in internal storage. This is especially annoying for Google, because widgets are one of the major and most noticeable features which separates Android from the competition.
Google's pushback problems
These limitations are not something that Google wants. Google wants user to be able to use all apps to their fullest capabilities. So, with the Nexus S, Google started trying to push manufacturers to adopt larger internal storage by putting 16 GB of internal storage in the flagship phone. But, beyond that the Nexus S was also the first Android flagship device to ship without an SD card slot. Subsequent flagship devices - the Motorola XOOM and Samsung Galaxy Nexus - have also shipped with large internal storage, but no SD card slot.
The trouble is that the logic doesn't fully connect. Having devices with large internal storage means that there should be no issues with apps or widgets, apps will run faster, phones can boot faster, and it removes storage limitations for OS updates. Unfortunately, there is no reason why larger internal storage should preclude the option of an SD card slot. The only reasoning that makes sense is in making a more streamlined experience for casual users, even at the expense of angering advanced users.
While much of the load has shifted to the cloud, Google still hasn't created a solution for backing up application data. Aside from additional storage, one great thing about SD cards is that they make your data portable. So, when you upgrade your phone, you just swap out the SD card and you still have all of your photos, videos, and music. Unfortunately, unless you are a rooter and use Titanium Backup, there hasn't been and still is no way to bring application data from one device to another.
What Google really needs first
Rovio claimed it would be launching a syncing service for Angry Birds this past summer, but that never happened. Even so, it shouldn't be on individual app developers to create that service. Google may want to remove SD cards from the equation in order to make sure all apps get the most capabilities available in Android, but before that can happen, Google needs a more complete syncing option.
We know that some of you are addicted to your SD cards, but the reality is that expandable storage is quickly becoming an unnecessary feature, because that storage is being shifted to the cloud. Google has an amazing array of products in the cloud, and most of them reduce your need for large amounts of storage on your device. Music can now be stored and streamed from the newly released Google Music, documents from Google Docs, photos from Picasa, and more and more video comes through YouTube (although before YouTube really makes this leap, Google needs to add device syncing, so you can start a movie on a PC and continue on mobile or visa versa.) Given all of these services, the vast majority of users won't need more than 16 GB of storage. And, before you all start crying, please remember that many of you in our readership are not the "majority of users". You are mostly advanced users with unique requirements, and there will always be manufacturers catering to you. But, right now, Google is trying very hard to push the Nexus brand and stock Android to a mass market, and that means alienating some of you for the betterment of the entire ecosystem.
So, while most of your data can sync to the cloud, that still leaves app data in the lurch. While we may be very willing to replay Cut the Rope, we may not be so excited for the prospect of losing all of our progress in most other games. Unfortunately, it seems like Google doesn't really have any plans to offer a solution to this problem. It's possible that a more full backup solution will come when Google finally transitions Docs into Google Drive, but we're not holding our breath.
The impulse to push larger internal storage for Android devices is a good one from Google. Larger storage removes any limitations and quirks brought on from the Apps2SD process, and it means that older devices may not have as long of delays in getting OS updates, because manufacturers won't have to try squeezing in the system and any UI overlays into small spaces. Google likely also sees that expandable storage and SD cards will become unnecessary given the emergence of the cloud, but we aren't quite there yet, especially without better solutions for syncing app data and transferring data to new devices.
On this one, Google may be a bit too forward thinking for its own good, and it may be pushing too hard to get the Nexus and stock Android into the hands of casual consumers. Just because Google wants a wider audience doesn't mean it needs to alienate advanced users. Like it or not, Nexus appeals to advanced users who don't want manufacturer UIs, carrier bloat, or difficulties associated with encrypted bootloaders. Nexus appeals to early adopters who want the shortest path available to Android OS updates, and those users also have unique needs that are beyond those of casual users. We have said before that Google seems to be going too far to make a successful consumer device, and the removal of SD cards seems to be another compromise in that endeavor.