I used game engines where resources were reference counted, but scripts were garbage collected (C#, Lua...). But since GDScript has been written by the same developer for the same engine, I assume it follows the same reference counting scheme. Just to clarify :)
I have .new() calls every frame and in garbage collected languages it would be doomsday. But in reference counted ones, the cost is smoother (I mean, CPU time increase is distributed rather than concentrated in large frame drops).