It's probably a mix of both.
Namespacing often seems to be an afterthought in many systems, and it can be hard to refactor in once an architecture has solidified.
It's not always the wrong choice to mingle identifiers of different types, but I think often people err on the side of convenience (/ laziness) instead of thinking through all of the potential issues.