yeah- those various thoughts crossed my mind too.
I just looked at the Gtk source. It simply takes the julia callback function that you supplied, turns it into a cfunction_, which wraps it into another function (so - i thikn similar to your trampoline idea). The original function just keeps propagating all the way through so it’s not at all obvious why it should not be called, it seems like regardless of the arguments the function should still be invoked. There’s almost certainly something wrong…
However it is obvious why I don’t get a compiler error. The cb is defined as a “Function” without any argument specification at all. so it doesn’t matter if the function takes 0 arguments or 10 arguments, it’s still a function and will satisfy the argument type of “Function”.