Richard's accusations are all true, sadly :-)
CP/NET over RS-232 is pretty slow. But there are lots of places for it to bog-down, including possibly the server. The protocol is a bit "chatty" and if you actually get any transmission errors it may be considerably slower to recover. Unfortunately, a lot of CP/NET requires copying to and from the message buffer, and that can add up - especially on slower CPU clocks.
As far as PIP, at least when doing a bulk copy of files, it will fill available memory with as much of the source file as possible, then write that to the destination file, and then if verify it reads back the destination file and compares to what is still in memory. So, it's pretty efficient - but does incur the cost of reading back the destination file. So, if the destination is local you're pretty good, but if it's remote then you suffer the network overhead.
I'm not sure why network file read is slower than write, unless your measurements are including some other activity we haven't (yet) accounted for. I think the total number of characters on the network is the same for both.
There is another network device I've used with CP/NET, the WizNET W5500 modules. These allow you to plug in to a LAN/WAN and we have run CP/NET over 2000 miles using that. I have also done an MP/M server based on this device. It's pretty fast, but still has the overhead of all the copying. In order to minimize the copy to/from the WizNET chip, I use Z80 block I/O instructions. I have a JAVA server for this as well. For the RC-Bus systems, this device is the MT011 by Mark T. at
https://github.com/markt4311/MT011. I have no idea whether anyone has PCBs already made, or whether there have been improvements made.
The "CRC" (checksum really) used for the DRI serial protocol is not much overhead. Since send and receive must be done character-by-character anyway, it's pretty easy to just keep a running sum as you go.
Tell me more about your setup and the test methodology. One thing to keep in mind is that a 5" floppy data rate is at best (theoretical max) 3000 bytes per second, which I think is about 30000 baud. And that's not taking into account rotational latency and seek time. So if you can run CP/NET at 115200 baud (and actually keep up) you're only going to be 3-4X the speed of a floppy. Again, these are very crude comparisons that don't account for all the real-world overhead. Both floppy and CP/NET have to copy data around more than you want. And as the transmission speed increases (like near-instantaneous with the WizNET) the overhead of the copying starts to become the issue.
I have a prototype of a new SNIOS interface that can eliminate some of the copying, but that requires a new NDOS to leverage it. It also has some potential issues when running the DRI serial protocol, possibly requiring a new serial protocol to deal with that.