It's the latter. If it's sitting in your projects file folder unused, it's taking up harddrive space, and nothing more. It's only active in video memory if it's being drawn in your scene.
All instances are references of a source material, with only the original taking up memory. I'm still not 100% sure how far you can push a material instance relative to its source, but most of the changes I've seen shown in these various tutorials I've glanced through only concern color changes, texture scales, and other odds and ends, all of which add negligible memory costs.
Take your road for an example. You could have 500 individual road tiles in your scene, each with its own instance, and they'll use no more video memory than what the source material they're all instanced from uses. The only variable is the RGB map on each of your road tiles, but that only takes up mere bytes in memory.
You've yet to even come close to having to consider this, but the general rule of thumb is to use texture resolutions appropriate to the size of your objects, and to use a fairly limited amount of textured assets per scene.
If you look at some random complicated scene, you'd think they're having to use hundreds or thousands of separate objects to create, but in reality, it's usually just 20 or 30 objects cleverly placed.
...and remember, even budget GPUs have 4 to 6 GB of video ram to play with these days.