You can also have your own JS firmware which you might call as "apps" and you can update or upload that via the Web IDE (the Bangle bootloader, clock, basically anything you see on the watch are just apps running on top of Espruino).
The Web IDE can also update the Espruino firmware on the watch, although not all browsers support Web Bluetooth (as far as I can tell the best success comes with Google Chrome). I've updated my watch and various other bluetooth Espruinos via the Web IDE. I'm not sure where you found where it says it only works with USB devices though.
The command line version should also be able to connect via bluetooth, I just haven't tried it yet. See for example the bluetooth mentioned in one of the commandline arguments:
-p,--port /dev/ttyX : Connect to a serial port
-p,--port aa:bb:cc:dd:ee : Connect to a Bluetooth device by addresses
-p,--port tcp://192.168.1.50 : Connect to a network device (port 23 default)
-d deviceName : Connect to the first device with a name containing deviceName