One downside to this approach is that it requires the end user to start two processes -- the web server and the web browser. You can limit the impact by making your application do both, but then the use may end up with two browser windows instead of one unless your app is smart enough to open a new tab in an existing browser rather than launching a new one.
That is just the tip of the iceberg though. Before going down this path you should consider the impact your decision has on the end user. It sounds like your main goal is cross-platform support rather than a high quality end user experience. Which is more important to you?
Maybe a web-based front end will be best for your users, or they may better be served by a more traditional GUI toolkit. There are many cross-platform GUI toolkits that will allow you to give a rich experience to your users with little effort (for example, Tk with python, ruby or Tcl).
Some may say that toolkits like Tk, wx, etc have to make compromises to be cross-platform, but I think they provide far fewer compromises than you have to accept when making a web based front end.
Of course you also have to consider time-to-market, your own skills, etc when making this decision. Just remember that at the end of the day the software should make some task easier for the end user, so ask yourself if your choice supports or hinders that.