It doesn't matter if you are big or small, you're always wasting resources.. Just count how many servers you have using <50% cpu. By having thousands of users, amazon can organize servers in a way, no cpu is wasted.
handling m2m is especially painful. I just hate writing same long code for fetching old members, checking if members are changed and then updating/inserting new members. Joins are also problematic (i like how beego orm is handling it, but it works only for single object and not multiple objects)
Last 2 years I've been using Go (instead of Python), even for webpages & apis. I'm actually considering going back to Python(for webpages and apis) because dealing with database in Go is really ugly. Currently available orms are nowhere near as useful as sqlAlchemy or django orm :(
datastore is a copy of Google Megastore service.
It has indexes, sql like queries, transactions.. and you don't need to run servers like with BigTable (you pay for documents and api calls only)
Simple scales better than complex. What they need is key->value caching and for that memcached is a perfect match. I'm not saying that Redis is bad, but when all you need is key-value memory caching, redis isn't needed.
Oh, sorry missed that "development" part. I'm afraid it's not possible. When it comes to managed vms, python local dev server is still not available(java is), so there is no way to know if using same local server will be possible.
This was already possible by using multiple modules within a single project. Each module can be written in a different language and all modules use same datastore, taskqueue, etc.