Also a note around the number of products, I think you would be okay, promotions - see other comment, dynamic adjusters would be fine I think.
One thing to watch out for is Spree leaves cart level orders in the database, and deleting an order is not trivial. I have a cron job that deletes incomplete orders over a certain age, made after I realised ~90% of the database size was made up of abandoned cart data.