To implement the technique you described (which is the cheapest) I don't think shaders on their own can do that. It depends on the engine. For example, Unity has a material system in which you can specify passes in a custom shader language, so you can actually tell Unity to draw twice a model with a single shader file, and when in the drawing process.
Thanks to this you can implement basic fur or polygon-based outline by just assigning a material.
In Godot, shaders don't go beyond being shaders. They cannot create geometry or tell Godot to draw more. That's why it forces you to clone MeshInstances if you want that.
In the future this could change though, for tessellation or newer things.