How `std::mem::ManuallyDrop` work?

That's a somewhat contentious topic and depends on what metric you use for specialness.

Not all lang items are special in the same ways, but in a sense they are all equally special. It's the code inside the compiler that determines what a lang item means.