Not anymore. Advanced Format (4096-byte sector) hard drives have taken the market like a storm, and SSDs benefit even more from using larger I/O sizes (because erase sectors are way larger).
Do you know a way to get an SSD's native erase sector size?
Flashbench [1] should be able to tell you what the erase-block and page size is.
For NVMe disks on Linux, you can find out this size with the nvme-cli [0] tool. Use "nvme id-ctrl" to find the Maximum Data Transfer Size (MDTS) in disk (LBA) blocks and "nvme id-ns" to find the LBA Data Size (LBADS). The value is then 2^MDTS * 2^LBADS byte.
For example, the Intel SSD 450 can transfer 32 blocks of 4096 byte per NVMe command, so you'd want a block size of 128 kiB.
Also check out the BUGS section of the manpage :) https://www.freebsd.org/cgi/man.cgi?diskinfo
Even the 32K read/write size used by many utilities (shells, XYZsum, rsync and so on) can slow things down with modern/fast IO devices.
Today you'll want to use something like 32K to 2MB. Doesn't really matter around there.
If you're writing synchronously (which you shouldn't), then it becomes a tad more difficult to figure out for optimal performance.
"Disables write caching […] you can disconnect the device safely without [unmounting it]"
:D