This is a very simple protocol change but with nice, visible, improvements:
Currently, a manager operation is actually a list of manager operations which can be transactions, originations, delegations, and key reveals. Every sub-operation includes a gas limit, a storage limit and a fee. The total fee for the operation is the sum of the fees, the total gas for the operation is the sum of the gas etc.
This can be improved in two ways:
gas limits and storage per operation should either be removed, or be made optional, defaulting to the global limit. That way, if I want to send two operations, and I only expect one of them to take up a lot of gas, I can set a limit for the sum of the two whitout knowning which one will consumme the gas. Also, there is absolutely no reason for fees to be defined per sub-operation as opposed to being defined for the batch.
It should be possible for multiple managers to sign a single batch. A bunch of manager operations from Alice and from Bob could form a valid batch, so long as both Alice and Bob sign the batch. Both Alice and Bob would specify their own fee and storage limit which would be added up in the batch. This offers at least two benefits:
a. Makes protocols like coinjoin very easy (though they are already possible using smart-contracts)
b. Makes it super easy to have a different party pay for the fee than the one making the transaction. This is already possible using smart-contracts, but this makes it way easier.