Well, you do kinda cross out most of your options right away
Technically, but only in a way that you already mentioned you do not want. If (hundreds of) point lights glued to glowing objects are ok - you can follow the steps of @Usnul and create either a deferred or magical renderer, that will allow you to render 1000s of lights with a good performance. Then mix with with emissive
to create emission effect.
Keep in mind - unless you brute-force raytracing and demand every app user to run tripple RTX 3080 SLI, most of effects (especially in WebGL) are created by making close-enough fakes (ex. look at the normal maps - they are basically faking surface light scattering.)
(As for bloom - yep, it’s quite a cheap way of faking light emission and not very realistic in most cases )