At this point in time there are 3 main reasons games don't get to run buttery smooth (as far as I'm aware):
1) GPU blacklisting: although this is becoming less serious over time as old devices die out, it's still not too hard to find old Windows systems or old Android phones where the GPU is buggy and prone to crashing, so the browser falls back to software rendering.
2) Synchronous Javascript compilation. While most JS engines compile code concurrently, apparently they still have some key points which still run synchronously, so block the game while it does whatever it needs to do. I think this only affects mobile, since most desktops are simply fast enough to do that work in <16ms and not drop a frame. Javascript engine improvements should resolve this, we have open bugs with browser vendors for this type of issue.
3) V-sync quality. This is a passing issue in Chrome (the Chromium team is aware of it and are working to fix it) and Firefox (which to me looks already fixed in Nightly), and is made worse by the fact the latest node-webkit is based on Chromium 38 which has the bug. This will be fixed in due course as subsequent Chromium and node-webkit updates come through.
There's nothing unsolvable here, we should see all three points improve through 2015 and beyond.