Oui je suis d'accord, mais il ne faut pas oublier que souvent, en entreprise, ta base de données est accessible uniquement sur le réseau privé, et de ce fait "protégée". Ce n'est pas le même scénario que l'Internet mondial ^^ (Apres, la question en
./0 ne concerne peut-être qu'une utilisation sur réseau privé, mais j'ai quand même des doutes)
Pour ce qui est des API, je suis d'accord aussi qu'on peut faire des bêtises, maintenant, que ce soit PHP, Java ou .NET, tu as des framework qui t'aident à faire ça très rapidement pour les cas simples, et ça peut être très bien pour celui qui n'a pas trop le temps de se poser des questions

(Puis en réalité, blinder ta base de données, impliquant donc de pratiquement tout protéger par des procédures stockées, ça revient à faire un API, juste via un dérivé SQL ^^)
(Il y a un truc que j'ai oublié de mentionner tout à l'heure, c'est que les bases de données / drivers associés ont une gestion des connexion réseau bien différente d'un serveur HTTP (stateless) et ça peut peut-être coincer dans certains cas d'utilisation vis à vis du nombre de connexions TCP simultanées à la base, soit par le nombre d'utilisateurs, soit par le biais de connexions persistantes de ces utilisateurs. Habituellement, on utilise rarement un grand nombre de connexions, car normalement la base est accédee depuis un service instancié en petit nombre, et chaque instance fera du pooling de connexions pour soulager la base.)