The TL;DR (from user standpoint) is that #[derive(RustcEncodable, RustcDecodable)] and rustc-serialize was a precursor to the serde serialization framework.
IIUC, at 1.0.0 these were widely used (and used by rustc) to support serialization, and there was no way to make them unstable. I still don't know whether the machinery for (derive) macros to be unstable is available yet, tbh. That said, #[derive(Encodable)] was available, deprecated, nominally stable, and theoretically usable up until 1.37 (it disappeared in 1.38), so there is precedent for removing these artifacts. That said, I'm kind of surprised that these aren't marked #[deprecated] yet.
You can see the implementation here: rustc_builtin_macros::deriving::encodable and rustc_builtin_macros::deriving::decodable
rustc_serialize is still used within rustc to implement persistence, IIUC.