That's a little circular. You can use any language you please because all languages support pipes as a concept and "understand" stdin/stdout/stderr, etc.
There's nothing inherently linking the CRL to using objects within pipes. You could use for example JSON if you really wanted.
Reading/writing to/from files is a FAR lower bar than linking with the CRL. It's a lower bar than even using JSON over pipes; most languages will have good JSON libraries but none of them are as trivial as reading/writing lines to a file.
I'm not opposed to lifting ourselves above text over unix pipes, but I think that if we are going to do it then we should go in for the penny, in for the pound. Such a system will be incompatible with existing unix tools, so we might as well drop all the technical debt. I don't think powershell is a large enough break from the traditional unix setup.
Aside: I've noticed that there is an open source implementation of Powershell for Mono called `pash`. Does anybody use this?
There's nothing inherently linking the CRL to using objects within pipes. You could use for example JSON if you really wanted.