It is true that if you simply write to the device, you don’t need to buffer sectors in memory. But file systems typically do “read-modify-write operations”. In that case, you do still need a 4K buffer. Suppose I want to change 5 bytes in the center of a 4KB sector, perserving the other 4091 bytes. I would have to (1) read the full sector into memory, (2) modify the 5 bytes in the memory copy, (3) erase the 4KB sector in FLASH, then (4) write the entire 4KB sector back to FLASH. Pretty expensive! But that is what file systems need to do all of the time.
Of course, for performance reasons you would not want to write the 4KB data back to FLASH on each tiny, byte read-modify-write. So file systems will keep at least one sector buffer in memory for each open file. Maybe another sector buffer for other non-file FLASH accesses (like the MBR or FAT). So typical use of something like a FAT file system could easily require more buffering than is available on that part. Which is a very sad limitation.
The only solutions are: (1) Don’t use a standard file system, (2) Replace the MCU with one that has more memory, or (3) Replace that FLASH with one that has smaller erase units (pages?).
The first option is good for some applications, but not for others. Of the remaining two, the last option seems the more reasonable.