The flip side of "data not there when you need it" is that you get much smaller scope (and therefore easier analysis, easier optimization, etc), and you also get guarantees that data will not be modified except by functions who specifically ask for it.
But that is a generic argument against OO-style abstractions, not necessarily an argument specifically for C.