A .txt file is meant for human readable sentences, yet this file is meant to be consumed by pip. You can only "customize" it working within the confines of pip freeze. If you were new to programming, would you suspect that requirements.txt was somehow linked to Python? Probably not.
Why can't ruby or JavaScript or any language make use of requirements.txt? They could, and make the same claim you just made, which would break pip install -r.
Text simply means text format, not that "humans should read this". The human editability of text is a nice-to-have, but not a requirment of the format structure.
For a comparision, NPM has a packages.json which is hand-editable, and lots of people do customize it by hand to get their NPM scripts running, but:
a) If you're new to programming, you might be confused by which language it belongs to just like a requirements.txt
b) if you peek into it, you may not think it's generated, consumed, or editted by machines because JSON format is so readable
I never said humans should read it, just that it's human readable. And of course requirements.txt is technically human readable, but the problem is that it breaks scripts if you do anything other than pip freeze to it. This is obvious in the npm world (you better put JSON in a .json file!).
My point is that the .txt extension doesn't give any hints to its use or that it's breakable, and that the name "requirements" doesn't describe the intended domain of the file (Python only). Even naming it "python_requirements.txt" would be an improvement.