FTP has no such limit - here's 88 MB/s over GigE. Since the server processor was maxed out during the transfer, I'd expect more if my server had a faster processor or less interrupt-hungry NIC or was configured for jumbo frames. The key to speed here is that the file was served from a ramdisk and saved to /dev/null. The server and client hard drives can handle only about half that speed and would ~half the transfer rate if used as a source or destination.
# wget -O /dev/null --ftp-user={REDACTED} --ftp-password={REDACTED}
ftp://192.168.1.50/ramdisktest
--16:57:50--
ftp://192.168.1.50/ramdisktest
=> `/dev/null'
Connecting to 192.168.1.50:21... connected.
Logging in as {REDACTED} ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD not needed.
==> PASV ... done. ==> RETR ramdisktest ... done.
Length: 512,000,000 (488M) (unauthoritative)
100%[===========================================>] 512,000,000 88.81M/s ETA 00:00
16:57:56 (88.14 MB/s) - `/dev/null' saved [512000000]
Furthermore, here is the same test done locally on the server showing just shy of 200 MB/s over FTP via the loopback interface:
# wget -O /dev/null --ftp-user={REDACTED} --ftp-password={REDACTED}
ftp://192.168.1.50/ramdisktest
--17:28:40--
ftp://192.168.1.50/ramdisktest
=> `/dev/null'
Connecting to 192.168.1.50:21... connected.
Logging in as {REDACTED} ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD not needed.
==> PASV ... done. ==> RETR ramdisktest ... done.
Length: 512,000,000 (488M) (unauthoritative)
100%[===========================================>] 512,000,000 198.34M/s
17:28:42 (198.29 MB/s) - `/dev/null' saved [512000000]