The "to some degree agnostic of language" part has been available for a long time in computers, initially as flowcharts and later as pseudocode.
>and b) has the right mindset to properly frame their ideas at the low level c operates at, C could be a good starting language
That requires prior knowledge and practice more than a mindset, IMO.
Over a few years of working as a teaching assistant, I saw two types of students: those that had some prior knowledge and effortlessly picked up the concepts, and first-timers that had to put in serious effort to stay afloat. If you were in the former camp, it's hard to envision how the latter might feel, and why every bit of additional complexity is a menace to someone who's already struggling with frustration over internalizing the basics. If you add too much complexity, the novice becomes discouraged, gives up trying to understand, and simply tries to memorize - this is always catastrophic for them.
As an example, I'm taking about students that write code like:
if(x == true){
y = true
}
else if (x == false){
y = false
}
I can understand if one is a) very motivated and b) has the right mindset to properly frame their ideas at the low level c operates at, C could be a good starting language. But this is not the case for many beginners.