если утечки в памяти он не предотвращает? С тем же успехом тогда можно и без него на Котлине каком-нибудь, или на Nemerle. Или на питоне, вот! У питона тоже подсчёт ссылок, так что стратегически разницы никакой.
Зачем нужен Rust? <…> если утечки в памяти он не предотвращает?
каким образом отсуствие строгих гарантий предотвращения утечек памяти как-то перечеркивает все остальные фишки языка и его нужность в целом? он по прежнему имеет весьма неплохую систему типов, явные unsafe’ы, хороший инструментарий, страхует от многих бед с памятьью (согласно своему определению memory safety) и очень многих UB, тд, тп.
раст старается предотвращать случайные утечки памяти насколько это возможно для системного языка - т.е., в данном случае, без обязательного толстого рантайма со сборщиком мусора, такое уж фундаментальное ограничение поставленной перед языком задачи, что поделать.
учитывая отсутсвие единого определения “утечки”, никакой язык с насколько угодно навороченным рантаймом их не предотвращает целиком - только подмножества.
Так и хорошо, пиши на C#, если твой задачи позволяют это делать.
Rust же не претендует для прям универсальный язык для вообще всего - он в первую очередь нужен в местах где не подходят реализации языков со слишком толстым рантаймом.