The smallest default images currently vary between 6.5-7.5 MB, depending on the target (modern ARMv8 ones might be larger). I recently tried to build a stripped-to-the bones (no luci, no opkg, no PPPoE, no offloading, no nothing) ath79-tiny (yes, not the same target, but roughly comparable) and couldn't get it below 4.6 MB (kernel v6.1). 4 MB has been a dead end a decade ago, and became completely unsustainable half a decade ago.
--
Could I have stripped it down even further, probably, but the result wouldn't have been anything I would have had any use for - the recycling bin won.