I assume that this is a limitation of how transactions are stored in the database — that when you create a repeating event it generates all of the separate transactions in the database all at once. As such, there would have to be a limitation to the maximum number that you could create lest you crash the system, etc., i.e., repeat forever would = infinite loop creating transactions.
Might there be a different way to do repeating transactions? Maybe, but it gets a whole heck of a lot trickier with this kind of system as opposed to your typical budgeting system or task manager that just generates a new item when you mark the current one complete.