this raises an 'interesting' thought/idea... if Axoloti could detect that an objects output was not in use, then it could remove it from processing. I guess I'm thinking like a smart mux, so the processing would look at the OSC output see its not active, and so not call dsp. It would still of course have the (code) memory requirement, but not the cpu.
hard coding a switchable oscillator is not that tricky, its not really much more that copying existing oscillator code, and putting in a switch to say which is active... could be perhaps more amusing ( but more dev effort) to allow morphing.
I guess one thing is... axoloti is kind of designed to create patches at compile time, rather than be a generic synth that is manipulated at runtime, to do the later you will tend to go down this road of more complex/generic modules.. which will increase memory footprint. e.g. we are talking here of switchable oscillators, but I'm sure many then say what about, switchable filters, LFOs, envelopes.
all valuable ideas and all possible, and I'm not saying its a bad thing.... just trying to raise, perhaps its a different 'philosophy'.
I guess this is why I like my 'intelligent' output concept, then anyone can build a 'switchable' X as a subpatch, but axoloti is then clever enough to remove the performance overhead. (and we continue to build small blocks which users combine).... just a thought.