Looking at this the callback is handled by reflective magic - I finally 'got it' this morning. The async_rpc annotation proxies the method call, it basically strips off the last argument if it is 'Callable' and passes the rest to the rpc handler.
That feels wrong on so many levels.
It works because there is no arity check in the handling.
there is quite a lot of tighter integration we could do with scalatest actually. One thing I'd love is for failing tests to be shown using standard "compile error" conventions so that simple regexes can pick up on it.