I don't understand why you see problems where there are none: The hooks of tuples are lifted from their components' hooks, only for nominal types you can override this behaviour. It works for C++ and nobody ever complained about it.
Likewise, having `owned(proc ())` vs `proc()` is far more elegant than requiring everything to go through yet another pointer indirection.
