If you write code that can be called without 'unsafe' then you are required to make that code safe. Whether you implement it using unsafe underneath is irrelevant.
The unsafe block is there because it does FFI, which hasn't actually been verified to be safe.