Je to ještě nižší úroveň, než C wrapper, protože pracují přímo s alokátorem paměti. Například Vec v Rustu je jednak obdobou vec z C++, ale zároveň se běžně používá jako obyčejné malloc() v C. Takže unsafe blok je tu zcela legitimní a v podstatě je totéž, jako inline asm v libc a asm a nizkoúrovňové C v STL.
Navíc je nutné mít na paměti dvě věci. Některé z těchto unsafe bloků by se dneska daly odstranit, byly napsány v době, kdy jazyk a standardní knihovna ještě neměly všechny potřebné featury (vnitřně mutační struktury, metody split_****_mut() u Vec atd.) Kromě toho je (jako u všech jazyků) překladač a standardní knihovna záměrně psán v omezené podmnožině jazyka v zájmu usnadnění bootstrapu.
Z těchto důvodů je jasné, že posuzovat výskyt unsafe kódu podle překladače a knihovny nemá smysl. Mnohem zajímavější je aplikační kód. Za svou osobu mám za sebou pár malých ale relativně netriviálních projektů v Rustu (v řádu každý pár tisíc řádků) a unsafe jsem použil všeho všudy třikrát. Poprvé z vlastní blbosti, kdy jsem nevěděl, jak to udělat čistě (a když jsem se to dočetl, tak jsem kód opravil), podruhé abych "na místě" přetypoval vektor u8 na vektor m128, a potřetí jako wrapper nad libjpeg.