Rust 2024 требует unsafe extern "C" { ... } вместо голого блока extern, и это самое честное небольшое изменение синтаксиса в языке за последние годы. Объявление внешней функции всегда было непроверенным утверждением о её сигнатуре. Ошибитесь в типах аргументов, и каждый вызов будет неопределённым поведением, как бы тщательно ни проверяли место вызова. Старый синтаксис ставил unsafe только в местах вызова и отправлял рецензентов смотреть не на те строки.
Теперь внутри блока элемент можно пометить safe fn, если у внешней функции действительно нет предусловий, и тогда вызывающему коду unsafe вообще не нужен. Вся ответственность переходит на одно объявление, и именно там ей место на ревью.
Та же редакция делает unsafe_op_in_unsafe_fn предупреждением по умолчанию, так что тело unsafe fn больше не считается одним большим небезопасным блоком. Каждой операции нужен свой unsafe { } и, по соглашению, комментарий SAFETY с объяснением, почему всё корректно.
Следующим шагом должно стать обязательное обоснование для каждого safe fn во внешнем блоке. С этим справился бы линт.