If that seems "quite different" to you, then good luck!
Personally speaking, SC's approach seems more amenable to composition (in the programming, not the musical sense). Collapsing everything down to core.render() puts the emphasis in the wrong place IMO. The oscillator is better considered to be an independent entity, and the "render" step really ought to be implicit. But to each, their own!
for example, "1 + 1" in FP is different from "1 + 1" in OOP.
In FP, everything is func. 1 is func; + is a combinator.
In OOP, 1 is an obj, + is the method of that obj that takes another obj.
It looks like you really enjoy SC's syntax. It's great. But essentially, the language is just one part of SuperCollider.
SuperCollider = sclang + scsynth
sclang -> OSC msg -> scsynth
The scsynth is actually the soul of SuperCollider to many computer musicians and that is what drives many to develop different language front-ends for scsynth.
Language is just a wrapper, with different programming paradigms. But down to the lower abstraction, it's the audio graph. I have no connection with Elementary js at all but I think it does a good job for providing a new angle for Web audio. Yet I understand your concern of using it for developing vst plugins.
core.render(el.cycle(440));
```
```SuperCollider
{ SinOsc.ar(440) }.play
```