Jestli je to všechno v Rustu, rozhodně bych rovnou vyřadil z úvah Makefile a všechno dělal přes cargo.
Jestli je to jednoduchá aplikace, asi bych měl ze začátku všechno v jednom repozitáři. Úplne ze začátku bych libku i binárku držel v jedné crate (to jde bez problému), potom, kdyby k té libce třeba těch binárek vznikalo víc, tak bych uvažoval o tom založit si workspace, kde by byla jedna crate pro libku a další crates pro binárky, a až úplně nakonec, když by mě k tomu okolnosti donutily, bych to eventuelně rozdělil na víc repozitářů. Když už bych to stejně měl jako workspace s víc crates, už by to nebyla žádná velká práce. Ale dokud by mě okolnosti nenutily, udržoval bych to všechno v jednom repozitáři, vývoj bude výrazně snazší, a díky rozdělení do více crates v rámci jednoho workspace bych stejně byl nucen držet si víceméně jasné hranice mezi libkou a binárkami.