Actually there is a maximum line length for most of the line-oriented utilities (awk, sed, grep ...) which applies to the shell too (at least to all shells of my knowledge). This is a system constant and can be found in /usr/include/limits.h .
There might be other limits, which can be found in this file too:
The minimum of these three values will determine the actual upper bound for the length of your input line.
In fact some 15 years ago, when these values were considerably smaller on average, it was possible to break some seemingly working shell-code like this:
for FILE in $(ls) ; do ..... ; done
by executing it for a directory with enough entries. Given good enough (=bad enough) circumstances this will lead to the "input line too long" error if the file names add up to the critical amount of characters. To avoid this risk altogether it is advisable to write it this way:
Generally it's good practice to not have too much code in the crontab entry its self. Write a script (eg /usr/local/bin/purge_old_reports.sh) and call this from the crontab entry.
# Archive and purge old spool jobs each Sunday morning
12 06 * * 0 /usr/local/bin/purge_old_reports.sh >> /var/log/purge_old_reports.log 2>&1