The bottleneck is not in sequential writes, but random writes due to file system updates. I’ve written about the write path on ext4 here. I don’t have exact knowledge on XFS and ZFS, though I recall reading that XFS and default setup of ZFS would be worse than ext4 in this regard, and a careful setup of ZFS (one with an SSD cache) may be better.
Anyway, in a theoretical scenario of one 2.3 MB upload per second your array will indeed show around 3-4 MB/s of traffic only, but it will eat up 10-20% of available IOPS on a single-drive ext4 setup. In a theoretical scenario (though, I think we may be see it during some peaks of traffic) of five 500 kB uploads per second your drive will also show only 3-4 MB/s of traffic, but you will start getting latency problems due to insufficient IOPS.