Why are data records in intel hex files often limited to 16 bytes, even for long contiguous blocks?
One could say &quot;for historical reasons&quot;, but also that it is good practice for these reasons:

Each line has a checksum.  Applying the checksum to a smaller number of bytes makes it less prone to errors annihilating each other in the checksum;
There are bootloaders that accept hex files directly.  In those cases the bootloader checks the input line for validity before storing it in memory.
Long lines would require that a microcontroller has a big input
buffer, which is not really compatible.
When opening it in a text file, it still fits on a screen.
16 bytes are easy to count in hex, and it is a power of 2.
32 bytes would require 64 characters for the content to which you need to add the header and the checksum.  That wold be close to 80 characters, which is the screen/editor width, so not recommended for viewing.

Related to the historical reasons we can also note that it easier for engineers and technicians to always find the same familiar format that they know how to decode visually.
With more data on a single line you can not just scroll through the data, your eyes would need to go from left to right all the time which is less efficient (this is also a reason for which newspapers have small columns).
There are drawbacks.  For example, it takes up more space on disk.  And those that are not happy with the drawbacks create and/or use other formats.