That's not a good test, because you're not passing in arguments that would make valid arguments in the absence of the protocol. The compiler only sees the protocol's method signature, so it uses the calling conventions for those.

I'm not exactly sure what's going on there, but it shouldn't affect what we're doing here.