Well, there’s a few things which fall into this category. libcore uses miscellaneous unstable features like lang_item which are very low priority to stabilize because we expect basically everyone to use libcore. There are a few attributes related specifically to stability annotations which we can’t stabilize without breaking the stability system (like allow_internal_unstable, which lets macro expansions use unstable APIs). Compiler crates have to be marked rustc_private so people can’t use compiler internals on stable Rust.
None of this actually blocks compiling rustc on stable Rust: in theory, stage0 could build the compiler against the host’s libstd, which would allow us to side-step the complicated issues. Fixing the compiler to work against stable Rust is just a ton of work, and we’d have to give up some convenient features. (The latter category is shrinking over time.)
Short-term, I think there’s a plan to poke a hole in the stability system so stable rustc can compile rustc.