I disagree. I think that for small well contained components (such as the frame encoder/decoder) it's much more straight forward to send to them the parameters they actually need (version, enveloped) as long as they are fewer than say 4. The fact that the session is sent is (in my opinion) the result of a less than ideal interface that ZMTPFramingDecoder exposes (ZMTPIncomingMessage should be scrapped in favor of ZMTPMessage IMHO). 

On the other hand, if I can get this merged, I can compromise ;)