Thinking about this some more...given that you can pass a block implementation to any of the fluent interface methods, would it make sense to apply this logic to them as well?

Actually, maybe that's not needed, if we do the arity check when the message is received.  Thoughts?