Is the information in MODBUS function code 16 redundant?
It is redundant and if you look at the MODBUS Application Protocol Specification figure 22 on page 31, it specifies to check for:(0x0001 ≤ Quantity of Registers ≤ 0x007B) AND (Byte Count == Quantity of Registers x 2), if not true then return ExceptionCode 03 (ILLEGAL DATA VALUE).

I would guess that they were trying to follow a consistent format which in this case resulted in the redundancy.