Under the current system, I don't think that teams should have a choice if teams are split into large/small gym divisions.
That being said, I would implement a different system for splitting gyms. I would have two classifications that are self-selected by the gym at the beginning of each season. (need better names, but I'll use "World League" and "National League" for demonstration purposes.)
World League (the "upper" level) gyms are eligible for Worlds bids. "National League" gyms are not. The idea would be that most large gyms would pick World League for themselves. Most small gyms would not (but would have the option to if they chose.) Default would be National. (You are defined as "national" unless you declare with USASF by a certain date.)
If the EPs chose, they may split divisions into "World" and "National" if and only if there are 7 or more teams total AND the resulting split would leave at least 2 teams in each division.
Gyms would NOT be able to change "leagues" mid-season. All of a program's teams compete in the same league.
PROS:
gyms get to pick their own league/classification each year.
strong small gyms (or weak large gyms) can choose to compete against similarly competitive teams
forced declaration by a certain date helps ensure that Worlds gyms are registered with USASF
No need to define (or attempt to verify) enrollment/size
Fairly simple for EPs to administer.
CONS:
Unorganized gyms could find themselves ineligible for Worlds
We need different names for the "leagues" or divisions.