Why does server name need to be specified when accessing local instances? Even though I have direct access to the physical database machine, I have to specify dbmachine\sql in the connection field, rather than just the instance name. Why is that?
Quite simply, client tools need to know explicitly which machine you're trying to connect to. This is like trying to access http://localhost/test_site by typing test_site into your browser.

For SQL Server you can indicate the local machine in a variety of ways:


machine_name\instance
(local)\instance
127.0.0.1\instance
.\instance