There are a variety of Internal`
context functions that are useful, such as InheritedBlock, Bag and StuffBag, etc., as well as many useful Developer`
fu
A variation of Leonid's answer which applies on an earlier stage:
InternalSymbols={"Bag","BagLength","BagPart","StuffBag"}
$PreRead=#/.(InternalSymbols/.{s_String:>s->"Internal`"<>s})&
After typing this in a notebook, typing
?Bag
gives me
Internal`Bag
Attributes[Internal`Bag]={Protected}
while
?AbsSquare
gives
Information::notfound: Symbol AbsSquare not found.
but
?Internal`AbsSquare
gives
Internal`AbsSquare
Attributes[Internal`AbsSquare]={Listable,NumericFunction,Protected}
However it seems to only work in the notebook interface, not when using math on the command line.