We would have to see the actual parse_args function to give you a good answer. All of the scripts we run against our huge datasets have a common include shell script, i.e., another small script is sourced. Keeps our common modules easy to maintain - just look in only one place.
The argument parsing it does loops over available arguments. If none are present there are a few default values used. So it does not "care" if there are arguments or not.
So. This is what someone else does. What your script does, I do not know for sure.
Whoever wrote this has never heard of the getopts command or shell shell-built-in. Even if this (miraculously) works, you should replace it by a function using getopts .
UNIX (and systems alike like Linux) provides a parser for commandline parsing already and there is no need to replace that - and definitely not with one that works less reliable.
It would appear the author intended the script to be used in ways other than just how it's called from the cronjob. If you remove that from the script, can you guarantee it will not impact something else (e.g. where else is the script called from, and how is it called)?
I understand the part about reimplementing it, so my point about not using getopts is moot. The script not getting any arguments, though, is a keen assumption on your part: it might be that the script if called from cron doesn't get any arguments, but it might be called somewhere else (and with arguments, for that matter). You might want to give this thought some consideration, maybe by calling:
find / -type f -exec /usr/local/bin/checkforscript {} <yourscriptname> \; 2>/dev/null
Where /usr/local/bin/checkforscript looks like:
#! /bin/ksh
if file "$1" | grep -qi script ; then
grep "$2" /dev/null "$1"
fi
exit 0
Notice that the added /dev/null in the grep-call makes grep display the filename of the files in which hits are found.