I've been reading about the tradeoffs between different iteration
methods, and the consensus seems to be that dolist, dotimes, and cl-loop
are more efficient than mapc and seq-do, because the former methods
macro-expand (in almost all cases) to a while loop, while the latter
require a lambda, which are generally slower and harder to debug.
I see what you're saying that allocating a list of keys just to iterate once over a hash table would be wasteful. And I suppose it also wouldn't make sense to have a built-in just for iterating over hash-tables.
Shankar Rao