I think you're talking past each other.
In both cases you need discipline to correctly interact with shared data.
The point is: some languages enforce discipline with compilers. Some rely on engineers to enforce it themselves.
Of the two, compilers appear so far to be more consistent.