The current trend of combining the two concerns by having language-specific build systems (like Cargo) was a mistake, IMO.
Language rules define dependency rules, that the build system is not aware of. For example transitive #include chains, requiring stuff like gcc -MMD to generate makefiles. This also improves IDE experience with suggestions on where to find imports instead of elementary error messages like "header file not found".
Also, the need for header files and disgusting hacks like unity builds just adds unnecessary friction.
even if you could incorporate external libraries with zero impedance mismatch, you still have to _use_ the said libraries.
while there might be _marginal_ element of truth to that statement, however ease of stitching external libraries into your application has no bearing on either the programming language or the act of programming the application itself.
simple, ease of integrating external libraries into a project has _nothing_ to do with the programming language.
they are at best two orthogonal topics.
This is not mentioning all the upsides of having a easy build system from easy learning and community standpoints.
But yes, if your language pretend to be a modern system language, you should yes. Not being able to write generic data structure or linear algebra containers in 2020 is a shame yes.
To wit, C++ is a brutal, terribly designed mess that's absolute torture to work with.
Rust is extremely well-designed and a pleasure to work with.
Very important difference!