Corporate applications run on App Engine. Here's a session from IO where our Corporate Engineering team discusses their experiences:
http://www.youtube.com/watch?v=IzxdL4I0xTg
As for your question about idempotence: There may be, but you'll likely get a better answer for this question from the GData team:
Interesting that contact creation isn't idempotent. If it doesn't exist already, for your use case, at least, it could be a good GData feature request to add a UUID to write operations such that after a successful write, writes become invalid for any subsequent call tagged with that UUID.
--
Ikai Lan
Developer Programs Engineer, Google App Engine