eval() is still used for templates currently. The template syntax is very rich, so it compiles down to native PHP code as you might expect and these are loaded from the DB on demand. There is code in our template class to read them from the file system, though this functionality hasn't been completed yet; at the least, it's been considered since the beginning as this would allow byte code caching (APC).
Plugins (well, "code event listeners") don't use eval. You specify a class+method and that is (auto)loaded and your code is run. The listener is given a specific set of arguments, similar to MediaWiki. This actually makes it documentable, and allows more backwards compatibility or at least documentation of potential issues.
Eval() not withstanding, I'm not sure how HipHop would handle the code. We haven't run it through the static analyzer yet, though it's on the cards. I'm not sure how it would handle including template files, and you would certainly have to recompile if you edited a template.
Well, aside from the fact that very few people actually run 5.3 currently, I'm not sure how 5.3 would help this particular example? Don't get me wrong, closures would be nice and so would late static binding (not too fussed about namespaces), but it wouldn't make a difference for event handling with the implementation we have. (Well, I suppose you could use closures if attaching to events in a certain way.)