const_get will always return a constant, no matter the visibility, which is probably what we want most of the time. But if you for instance have code that does some automatic name to constant resolution, you might now want to leak private constants.
Bar = 42
Foo::Bar # raises NameError
Foo.const_get("Bar") # => 42
Object.const_get("Foo::Bar") # => 42
Foo.public_const_get("Bar") # raises NameError
Object.public_const_get("Foo::Bar") # raises NameError