When a message runs past the size limit, go-smtp's reader returns ErrDataTooLarge, which already carries a 552. Both Data handlers turn any read error into a temporary 451 instead, so a sender with a message that is too big retries it later and uploads the whole thing again each time.
Both handlers now pass go-smtp's 552 through, so the sender gives up after one try. Other read errors still get the 451.