> И меня несколько удивило отсутствие каких-либо наработок в этой области в Rust (хотя бы начальных версий).
1) язык в релизе несколько месяцев, чего вы хотите-то;
2) не во всех языках ORM смотрится естественно. В C++ нормальной ORM нет до сих пор, есть некоторые библиотеки на базе Qt, но де-факто стандарта нет просто потому, что в языке недостаточно силен уровень метаданных. Но в этом нет проблемы просто потому, что на плюсах редко пишутся приложения, где нужен такой уровень;
3) А может повсеместное использование ORM это только удел web?
Я бы сказал что ORM это удел бизнес-приложений и языков высокого уровня (Java/.NET/Ruby). Другое дело, что веб-приложения в 99% случаев пишут на всяких asp.net и Рубях, а не на плюсах, поэтому и такая корреляция. Внутрикорпоративных десктопных приложений по прежнему достаточно, и как раз там ORM тоже любят.
> Подскажите, на сколько высокоуровневой должна быть ORM?
Это вам решать, ORM-ки разные бывают, кто-то где-то используют потолще, кто-то - потоньше. Лично я особого смысла в тонких не вижу для большинства задач, поэтому на мой вкус в ORM обязательно должны быть следующие вещи:
1)
martinfowler.com/eaaCatalog/identityMap.html
2)
martinfowler.com/eaaCatalog/unitOfWork.html
3)
martinfowler.com/eaaCatalog/inheritanceMappers.html
Вообще, озакомьтесь для начала со всеми Object-Relational паттернами:
martinfowler.com/eaaCatalog, а то наверняка напишете парк велосипедов.