I encourage to use the structure of a package in Julia (created by PkgTemplates.jl, or if it is more complex to see Dr Watson.jl for amore scientific app (as a data sciente project).
For answer your question 1, I recommend to use:
julia --project=. src/lib/dataset.jl
For question 2, include is a very useful way to include content, it gives all the flexibility you can ask. However, the definition of a package many times is more intuitive (I disagree in that it is not intuitive).
share variables (as PATH) between files does not seen nice for me, I would use a function to return that information. Dr Watson can be useful, check it.