I'm not completely sure what you mean, but DNS is a central system, somewhat like your local network. you can't have cname1 as the same machine name. You can have different hosts pointing to the same IP.
For example, I could have:
In this case, my web server resolves the host and sends back the appropriate code. Or, I could have two different ports running, and I'd have to use these in my web brower:
The first case, www, takes the default port (80), because the browser knows this. The second one uses 8080.
For SQL Server, when you connect via name (sqldb1), the driver connects to the default port. If you connected to sqldb1/inst1, the driver would look to the SQL Browser service, which returns the port. Then the driver connects on that. If you use sqldb1/inst1:51433, it uses 51433.
If you connect as sqldb.mydomain.com, which is a cname for (sqldb1), then the driver connects to that name and on 1433. You could override this, but you can't use sqldb/inst1.mydomain.com or sqldb.mydomain.com/inst1. Those aren't valid addresses, AFAIK. Therefore, you would need to have your instance on 1433 or include the port in the connection string or name.