There is lot more coming on this topic of semantic versioning of the VDBs in the 9.0, Steve has already done lot of work on this, see [TEIID-3462] Add support for semantic versioning of VDBs - JBoss Issue Tracker and https://docs.jboss.org/author/display/TEIID/VDB+Versioning
Now to the problem at hand, the thing to know is "VDB File Name" != "VDB NAME"
A VDB File Name is what called as "deployment name", and "VDB Name" is the vdb name you use to connect, this is defined inside the vdb.xml file. They both need to be unique in a given Teiid server instance.
However, if you want to deploy the same VDB with a different version along side the previous VDB, make the deployment names unique, however keep the vdb name same, but version numbers different. So in this case in your vdb.xml the version should be different for 310 and 311. You can use "connection-type" to manage which vdb your client's are connected to by default. see VDB Versioning - Teiid 8.12 - Project Documentation Editor BTW, you can mange the connection-type from the web-console.
Sounds interesting. Thank you! I'll keep that in mind.