I'm guessing that the promotions are stored in its own table, you would be able to create as many as you'd like.
the problem that I see is that when you go into the Promotion Editor in the portal, with the high number of records, it will take a bit longer.
We have 15,000 product, 187 categories, 1938 sections ("Departments"...we call them "Attributes"), so when we go in the portal, it is slow.
I ran this in my portal. [Configuration] - [Advanced] - [Run SQL] - DO NOT RUN THIS, unless you know SQL.
You would just create a stored procedure that increments the "Code".
insert into Promotions (name, Description, UsageText, Code, CallToAction, priority, active, autoassigned, PromotionRuleData, PromotionDiscountData)
values ('test1', 'test description',
'Special promotion', '123', 'Special Offer!', 1, 1, 0,
'<ArrayOfPromotionRuleBase xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />',
'<ArrayOfPromotionDiscountBase xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">