¿Por qué ES6 WeakMap no es enumerable?

Antes de mi reingreso en JavaScript (y relacionado) he hecho un montón de ActionScript 3 y allí tenían un objeto de diccionario que tenía claves débiles como el próximo WeakMap; pero la versión AS3 aún era enumerable como un objeto genérico regular, mientras que WeakMap específicamente no tiene.keys() o.values().

La versión AS3 nos permitió manipular algunas construcciones realmente interesantes y útiles, pero creo que la versión JS es algo limitada. ¿Porqué es eso?

Si Flash VM podría hacerlo, ¿qué impide que los navegadores hagan lo mismo? Leí cómo sería "no determinista", pero ese es el punto, ¿no?

Respuestas a la pregunta(2)

Su respuesta a la pregunta