Yes, it does look like a (legacy?) 300-tick limitation
Quote:
nTicks Input, maximum number of ticks to be filled; guaranteed to be 300 or less.
ticks Output, array of up to 300 T6 structs (defined in includetrading.h) to be filled with the ask price history

in filling-in t6 structures internally by Zorro is the reason for current IB plugin re-requesting data for each 5-hr step back in history.

Lifting this limit (and correcting plugins) would speed up loading historical data significantly.