The other thing you suggest is adding additional pre/post callbacks (similar to pre/post_linebreak_filter) to allow multiple packages to use mlist_to_hlist, right? exactly
I think that this is a good idea (also for some
other callbacks) but it makes sense to implement this in a package instead of in the LaTeX kernel first to allow some experiments in getting the interface right.
Maybe luatexbase is candidate for that. Like now we use luatexbase.add_to_callback() and similar function could add mlist_to_hlist dedicated functions to the list and all of them at one callback function. But you are right it has to become defacto standard that everybody could adapt their packages.
Anyways, in my opinion think we should continue this discussion on the LaTeX bug tracker or the LaTeX mailing list (LATEX-L@listserv.uni-heidelberg.de) because it is about how LaTeX deals with LuaTeX callbacks and not about the LuaTeX engine directly.
ok!