The way I'd describe it is, it can easily be as low-level as C - stack-allocated arrays, unions, pointer arithmetic etc, even inline assembler - but the object-oriented layer on top of that is more similar to C# or Java than to C++; hence why I thought about it when you mentioned Scala.
It's in a spot similar to Go, in that it doesn't have a VM, but is normally used with a garbage collector (the core language can do without it - the libraries are another matter, though). However, unlike Go, it doesn't adopt the "less features and more boilerplate is better" approach to PL design.
OTOH it does have templates (not just generics) every bit as powerful as C++ ones and then some - but also with fewer footguns, and overall easier and more pleasant to use.
You might also find it interesting that the D compiler has a mode that is specifically called "BetterC", which basically removes all features that are dependent on the D runtime library (GC etc): https://dlang.org/spec/betterc.html