The first line is produced in an environment in which sqlite3 is not available
The second one is produced in an environment in which sqlite3 is, well guess what, available
I produce such environments with the Guix "environment" command
I think csexps are cool because they are readable to humans
A user creating their pipeline can easily inspect the result of the configuration phase
They could even paste excerpts of text on mailing lists, should they want to ask for help
In my idea a build tool doesn't attempt at managing an environment
You could have sqlite3 because you set up a Guix environment, or because you installed it with apt-get or dnf or manually
The build tool only worries about the availabilty, not how it's achieved
If every dependency is available (anyhow) it just builds
Because building and package management are supposed to be differrent concerns.
If you have Guix, fine.
If you haven't Guix, then you're on your own, if you can manage, fine
This should address your concern to let people treat their pipelines as packages
Doesn't it ?
Is this approach not enough for you ?