Is there any wallet that that sets fee based on input amounts (not tx size)? Generally the fee is based on tx size in the wallets I am aware of. Is there any wallet that allows setting fee based on a fixed fraction of total input value (say, 1/1000th of the inputs value)? 

Please include wallets used by developers also (Bitcoinj, bitcoinjs, etc).
Most wallets that allow you to specify a custom fee would support this, technically. The fee is simply totalInput , totalOutput, so you can easily adjust it a fair bit.

However, miner's select txs based on sat/byte. In the system you described, some txs will end up severely underprices, while others will be massively overpriced.

Wallets currently just take the size of your tx, multiply it by a fee rate, and deduct that from the change outputs. This ensures that you are paying a fair fee for the tx size.