It's a trade-off. Yes, the code is messier for the 20% of functions where the input is manipulated. For the remaining 80% it makes it slightly easier to analyse the behaviour of the function.
I understand that. But I think it's better to let the programmer decide whether their parameters are mutable or not. Then you don't have to compromise.