Say we magically got rid of the security problem (thus eliminating a middle tier - and I admit it'd be some pretty mean magic), then could your second point could be addressed by this: http://news.ycombinator.com/item?id=4518443 ?
Regarding your third point, I agree it's not the most elegant of languages - but if some language which is elegant could run on browsers and had database access capabilities, would one use that instead of having a middle tier to generate "pages"? (as things stand, much of the middleware these days generates and receives JSON/XML and data anyway - can we do away with generating that initial HTML totally?)
More broadly, though - there's nothing specific to a language that allows or disallows communication with a database. That's really the realm of a library or a driver to interact with the database (an external service) through some established protocol. People have written databases with JS hooks before, but it's just not common, likely because of the security problem.
Second, there are tons of other stuff that we do on the server side besides talking to databases. E.g image processing, task queues, etc.
And lastly, Javascript is not the most elegant of languages. No much benefit of using it in the server side, besides the mythical "so we can share code", as if server and client side do the same stuff (with the exception of input validation).