The RLP specification says the following about integers:
The only purpose of RLP is to encode structure; encoding specific atomic data types (eg. strings, ints, floats) is left up to higher-order protocols; in Ethereum integers must be represented in big endian binary form with no leading zeroes (thus making the integer value zero be equivalent to the empty byte array).
When it says "in Ethereum" does this actually mean in the ETH subprotocol alone, or does this mean in the body of work 'Ethereum' and specifically the RLP protocol? If the latter, this paragraph seems to contradict itself. On the one hand, it is saying that RLP leaves the encoding to higher protocols, but on the other says that RLP demands big endian integers with all leading zeroes skipped.
Where should this encoding be implemented then? In the RLP protocol, or should there be a specific type 'EthereumInteger' distinct from 'integer'?
Perhaps a better question might be, to whom should this sort of question best be addressed and where?