Comment by knorker
Sure it does.
let f = std::fs::File::open("/dev/null").unwrap();
let f: std::os::fd::OwnedFd = f.into();
let socket: std::net::UdpSocket = f.into();
This is really no different. In this example it's not even a socket.