Bytemuck handles the latter, not the former. In the applications I am working on, both matter.
I can't quite parse your statement, but if you mean that bytemuck doesn't let you "rely on the exact binary layout of something in memory", then yes, it does: it lets you cast from a Pod type to another Pod type, which exposes the memory layout of both types.
No, that's what bytemuck is for. If bytemuck didn't exist, sure, I'd be using a lot of unsafe.