The checked variant just calls the unchecked, and the panicking variant calls the checked variant. They all need to call unsafe code. See here for details: https://doc.rust-lang.org/nomicon/borrow-splitting.html
Is creating a TCP socket using stdlib functions unsafe? How about writing to a file? Or acquiring a mutex?
I would suggest doing some more reading before chiming in here :)
Easier to lose context with longer comment chains...