What is the best solution for hiding login control on public facing WCM sites? Obviously putting the whole thing in a div would be straight forward but then, I don't see how people that will need access to the back-end can get it. i.e. editors, approvers etc. Is there a way to give them access through other means while not allowing visitors to see a login control?
Some like to have two different sites, one for internet facing and one for internal admins etc.
It depends on how particular the users are.
For example, I just deployed a public facing site and just removed the login/welcome snippets.
All the admin needs to do is access a restricted page and they will be prompted for authentication. For example: http://yoursite/_layouts/settings.aspx
Hitting the above url will prompt for credentials.
I personally prefer this method, as it's a simple url to remember and eliminates the need to "hide" anything.
But that's just me and your clients may not like this, in which case you could consider the two-site option.
Removing the link to loginis hardly enough, instead focus on removing access to login.
Use UAG to deny all access to login and authenticate.
Also activate the ViewFormPagesLockDown feature to remove the permission to view form pages (also removes access to unprotected layout pages).
Alternatively SharePoint api gives access to remove anonymous access to Layouts virtusl directory on IIS
Edit: Also read the hardening articles on TechNet: http://technet.microsoft.com/en-US/library/f507f5d6-4c9d-4f98-909f-069c53b9a3f6.aspx