You can access a database locally, at least as of the past couple years. It's called IndexedDB. People quibble about the API, the features, the browser support (Firefox, Chrome and IE10 only), etc... but it is a real database you can use locally.
How is the File API "hackish", let alone each browser having its own way of doing it?
The File API gives you access to the files the user has selected for your access. No website-accessible API will ever give full access to anything for rather good reasons.
Imagine you chose to build an IDE using Webkit and it lets you access everything via JS api that you could access using Cocoa or GTK+.
OP
> wanted to be able to use the power of the browser for standalone, cross-platform desktop applications.
considering the power of the browsers is to run web applications, it makes sense that the standard and cross-platform APIs they expose are web APIs.
> Imagine you chose to build an IDE using Webkit and it lets you access everything via JS api that you could access using Cocoa or GTK+.
You've got XUL, you've got webviews, you've got node bindings for Qt, wx or opengl. If you want to write desktop applications in javascript there's no dearth of ways to do it.
I was shocked when I discovered I couldn't write a simple JS/HTML application and connect it to a local DB like SQLite without going through a server. Each browser has its own hackish way of doing something like that, but they're far from a complete solution. So far I have my eyes on node-webkit[1], which does everything I need it to do, but I welcome every option in this space.
[1] https://github.com/rogerwang/node-webkit