Now I think I finally see where my hang up is.
If B imports C, and A imports B and C, you still have to tell A
where to find C. C doesn't go along for the ride with B. Stated
another way, A doesn't look inside B to find C. Stated yet
another way, B does not expose C to A.
The statement above that I did not include nanovg.d on the
command line finally clued me in. The statement that I was being
"picky" about what to compile similarly helped.
sh$> dmd $(find . -name "*.d") <== a joke, sort of.
Eager to make the next try. Gotta run for a bit.