Due to vendor "requirements" all of our systems have their own database installation on a dedicated server. Some of them have multiple instances to save on licensing for test. Other than that we throw away a lot of money on Windows licensing and SQL licensing.
I don't understand how you can easily migrate to a different server. Some of our applications bury the database connection where we can't modify it. In rare instances we could go in and change an ODBC connection, but that requires a downtime.
I would recommend starting with the shared design from day one, which you also recommended at the end of the article. If the server is virtual, more processors and memory can be thrown at it if any performance issues arise. Our VMWare environment is well designed, and we usually have plenty of power on any virtual server.