>Can you think of any other languages?
Yes. E.g. every language where you can pass pointers can do this. Reference are a construct around pointers.
>Of the ones I listed, I use all of, and am continuously frustrated by this limitation.
Why? This is only a limitation for a few basic types. All the language you mention allow you to modify objects passed to a function.
If it ever were any issue though you can always return the modified object and overwrite the original.
a = modify(a)
works even if you can only pass a value.
In practice this should never be a limitation, certainly I have never encountered it as one.