I think also Reversable Functions should have to be seperated by at least one instruction for example:
In my view, "bzip2 | bunzip2" would count as a null operation - No intermediate processing has taken place and therefor is just padding to fill the line up.
But just to clarify, compression, then sending via a network socket to the next stage, at which point you decmopress would be ok because that involves intermediate processing for which the compression would be of benifit for the network stage.