[…] overlay hundreds/thousands of simple transparent objects […]

My dear brother in Christ, the only thing wilder than that single sentence is the age of the version of three.js you’ve decided to use ![]()
To answer your question though - in default three.js setup, you’re “allowed” to overlay only 2 transparent objects. If you’d decide to either use a custom transparency render order or the alpha hash - you won’t be getting anywhere near "hundreds / thousands objects”, especially if camera zooms close onto the transparent materials in which case performance will get obliterated by overdraw.
The right approach to create interesting textures in this case would be to simply create a custom shader that renders one layer on top of another. That way not only you’d get a slightly way simpler code, but also be you’ll be able to control when to stop drawing further layers, skipping unnecessary calculations.