I came across another weird "bug". A project worked in the Editor, on Android, on HTML5 Run in Browser, but not on HTML5 exported to a web server.
Conventional troubleshooting revealed that it was my mistake.
There are two instances of a "player" scene, and the common script created a RandomNumberGenerator so that the players move randomly. The symptom was that the two players were moving exactly the same.
It turned out that the RandomNumberGenerator::randomize() method depends on OS.get_ticks_usec() to compute the seed, and on HTML5 exported to the web server, the usec are apparently always returned as 0, so randomize() was using the same seed for both instances.
One solution was to ensure that different seeds were used, but I fixed it by using only one RandomNumberGenerator.