At first you are comparing the simple FTP with the more complex SMB protocol. In general the rabbit will always be faster than the turtle … but okay.
You are comparing FTP, written after a RFC and tested well, with SMB, written by a huge tech company and still ‘only’ some kind of reverse engineered, today.

I am not familiar with the OpenWRT implementation of SMB, but lets try a little in the [global] section of your smb.conf:

  • TCP_NODELAY - Maybe more packet drops at the destination, but also the resended packages will be faster.
  • IPTOS_LOWDELAY - the same, but for the transport.
  • SO_SNDBUF or SO_RCVBUF - Yeah, just try what are suitable values for your setup. Try not essential more than your OS can handle.
  • does OpenWRT Samba knows SO_SNDLOWAT?
  • Samba is using caching (the thing, that drives everybody insane while calculating the ETA for a download) … Mabe oplocks will help.

Something like this should be the outcome:

[global] 
	log level = 0
	socket options = TCP_NODELAY IPTOS_LOWDELAY 
	read raw = yes
	write raw = yes
	oplocks = yes
	max xmit = 65535
	dead time = 15
	getwd cache = yes
	lpq cache = 30
[some share] 
	oplocks = no

But again, I’m not a samba expert, I try to avoid it, whenever possible,