I'm curious what required this. I have to admit that the "distanced" approach of using stdin does a good job of forcing a logical boundary between existing tools and emacs. In particular, it makes debugging markedly easier, since you can usually see what the program was trying to do.
That said, I do agree that just wanting to avoid non-free linked code is not productive. That ship sadly sailed and emacs seems to be losing ground to products that don't have this concern.