If it simplifies things, why not create it on upgrade/init and leave it unused?
Hypothetically, it does. I spent a few hours trying to do this on Friday, actually. When you circumvent the APIs and manually create a table, you have to use a fixed table ID. You then also have to make sure that operations against accumulo.metadata still "consider" it a table. After bashing my head against it for a few hours, I gave up. While there is the simplicity argument for creating the table up front, there is the implementation complexity of having a table which doesn't follow the same "rules" as every other table (with nothing being special about said table).