Only place where we call `__init__` in toolchain classes in in cuda.py, see https://github.com/hpcugent/easybuild-framework/blob/master/easybuild/toolchains/compiler/cuda.py .

It's done like this consistently in easyblocks though.

It's probably OK as long as you're not overwriting initialized class variables (by accident), but if you do, both approaches will cause problems/unexpected outcomes.