Это не алфавитный порядок. Сначала все числовые свойства в порядке номеров, потом все нечисловые в порядке вставки.
Ишуй в багтрекере V8 (резолюция Working As Intended):
code.google.com/p/v8/issues/detail?id=164
Новый стандарт JavaScript скорее всего будет специфицировать именно такое поведение:
wiki.ecmascript.org/doku.php?id=strawman:enumeration
Хотите сохранять порядок ключей, храните ключи рядом в массиве в нужном вам порядке и используйте при итерации.