It's not, because you can't easily spawn transient pipes between running processes. The OS probably allows this, but I've never seen it exposed in the UI layer.
Pipes are primarily used to build ad-hoc pipelines that run in batch mode. Copy&paste is a tool for moving specific bits of data on demand between two running programs, or within the same program. Copy&paste interaction model is "please take this and put it there", and the ability to select the this and the there is just as important as transferring the data itself.
> can't easily spawn transient pipes between running processes.
Yeah, while this is theoretically possible it's unmanageable in practice (the "washing line" protocol allows you to send a UNIX pipe file descriptor to another process over a socket).
I suspect the nearest thing that made it into production was OLE.
I'd say the closest thing in modern systems would be the Stream metaphor (a.k.a. Observer design pattern) in functional reactive programming.
This is the construct used to program the spreadsheet's reactive behavior, after all. You could think of users creating spreadsheet formulas as declaring a pipeline at runtime between two datasets, the origin range and the target range.
What is missing is a way to create "spreadsheet functions" among different applications. Online computational notebooks a la Jupyter are almost there, but they still need to share the same runtime kernel to transfer data between different books.
A combination of notebooks and web hooks should do the trick, methinks, but it needs someone to assemble this brittle system into a robust product.
Pipes are primarily used to build ad-hoc pipelines that run in batch mode. Copy&paste is a tool for moving specific bits of data on demand between two running programs, or within the same program. Copy&paste interaction model is "please take this and put it there", and the ability to select the this and the there is just as important as transferring the data itself.