for reading files and transferring over the network: the limit is always going to be the IO devices, not an extra context switch and a few extra copies...
But for the usual case where it is I/O-constrained, you can often get files across more quickly by throwing CPU at reducing the total amount of bandwidth required by, e.g., using something like bzip or pbzip:
pbzip2 < file | nc $host $port
And on the other side: nc -l $port | pbzip2 -d > file