I'm not sure what Azure really brings to the table. You can probably find a cheaper option for database hosting even if you insist on using SQL Server.

But any scheme that is going to support monolithic coding will run into the issues of performance, reliability, and of security and visibility (your "whitelisting" of IP addresses for firewall penetration).

This is where web services came from: the idea was to replace robust high-performance protocols such as DCOM to interconnect n-tier applications with the good-enough, firewall-friendly, and more Internet-safe HTTP protocol. But before you can use HTTP you have to move away from monolithic design by moving as much data access and business logic as possible as close to the DBMS as possible.

That doesn't mean you clients can't still do a lot of crunching, but that's usually a special case. If you have a central DBMS than most likely your application is... data centric. The more you need to work against that central database the thinner your client tends to get.