For instance, the length() function operates on a scalar and is documented that way. The documentation is very clear on that. It doesn't matter to me what I think it should do as long as I know what it does do.
You're just substituting one form of memory work for another. To maintain python, you have to remember type information: to maintain Perl, you need to embed the counter-intuitive behaviour of length() in your mind, in what purports to be a DWIM language. Both are awkward bits of memory work, in my mind.