Great! But when you have hard timing requirements measured in microseconds, you generally need some fine-grained control over the instructions the CPU ends up running. All the knobs and levers C and C++ offer you are quite useful here.
True, but those embedded Java runtimes also have such kind of knobs and levers, they just look different from what C and C++ devs are used to.