Ryan,
May be I'm missing something, but why not use a UserProfile model and
reference *it* instead of the User:
class UserProfile(db.Model):
user = db.UserProperty()
...
UserProfile would use a generated integer key id, or a custom key_name
(e.g. a prefixed uuid4 string).
You would then reference the user profile in your models:
class Comment(db.Model):
who = db.ReferenceProperty(reference_class=UserProfile)
If the user changes her e-mail, the references will not not affected.
app-engine-patch has built-in support for this, if you are using
Django you might want to take a look:
http://code.google.com/p/app-engine-patch/wiki/GoogleAccounts