Fees are set by price-per-byte, not by “big transaction = big fee.”
When blocks aren’t full, the price floor is tiny, so a blob that fills an entire block can ride in for that same low rate—cheap for the sender, but every node must download and keep those extra megabytes forever.