Moving applications to the internal SD card:
- How to Install Android Apps to the SD Card by Default & Move Almost Any App to the SD Card: these instructions were mostly correct
- Under Android 4.0.4, the debugging options are under Settings -> Developer Options, not Settings -> Applications
- The correct adb command (at least under Ubuntu) is "set-install-location", not "SetInstallLocation".
- Location 2 is the correct location for internal SDRAM. There's no indication of what location 1 is.
- There were still a lot of applications (especially, but not exclusively, Google apps) which could neither be moved nor uninstalled.
As for why Android abandoned the USB Mass Storage protocol for data transfer -- this article says that under USBMS, "When you connected the storage to the computer, it was disconnected from the Android operating system running on the device." but does not explain why this is necessary (given that no other data transfer protocol in existence requires a permanent lock on the storage device at either end).