Virtualmin (both GPL and Pro) makes one domain special – the first one given to an end user. That is referred to as a virtual server. The second, third, …, domains are referred to as subservers.
But functionally these are just domains complete with websites. There is no good reason to treat the first one any differently from the others.
Making the first domain special also prevents the end user from deleting it. All the other domains can be deleted, but the first one cannot.
If SSL was not enabled when the first domain was created, the end user cannot add it later, even if the package allows SSL. But if the user adds a second, third, …, domain, then he can skip SSL now and add it later.
We are (a) confusing users with the terminology (example: https://www.virtualmin.com/node/65680) and (b) restricting them from doing simple things, i.e., delete a specific domain, add SSL if previously omitted.
Here is how the redesign would go. When a new end user is added, we can optionally also add a domain (the most common scenario), or we can skip adding the domain (a less common scenario).
When the end user logs in, either a domain is already there or it’s not. If not, the user can add one or more domains. All domains would have equal status. There would be no distinction between a virtual server and a subserver. The user would be able to delete any domain, including the first one that was added.
Result: Cleaner user interface, less confusion, more choices for users, quite likely a much simpler internal design, and almost certainly more Pro licenses sold.