Absolutely.
This is useful for any object where you can use it as-is, but also might want to make an enhanced version. Basically to create new node types that are specialized.
For example, I use this for my State and StateMachine nodes.
As you can see from this screenshot, my Game State Machine node is default version of a node - in this case a StateMachine node. I know this because I have no custom versions of that node. You can also see the Extend Script button at the top of the screen instead of the Add Script button. This tells me I am extending a custom script instead of extending a built-in script.
If you look lower in the shot, you can see the Splash Screen state. This is also using the default script of its type. Hovering over it I can see that it is of type GameStateSplashScreen. So I know that it’s using custom code for a State, but it is a State I have purposefully created for re-use. (I use it in all my projects.)
Now let’s take a look at another example. This is an inherited scene. It is goblin.tscn inheriting from enemy_2d.tscn, which has a more complex node structure. I.E. it is not one node. So I can’t just create it by pressing Add Node even though it has a script with a class_name.
All the yellow nodes are inherited from the parent scene. The kinda greyed-out blue script icon next to ChibiAnimatedSprite2D tells me that this script is a tool script (it’s blue) and that I haven’t modified it in this inherited version of enemy_2d.tscn.
Furthermore, ChibiAnimatedSprite2D actually has an exported variable called Sprite Root Folder.

Normally, I would need to create a default scene and instantiate it even though it doesn’t do anything other than give me a way to edit that value. However, since I can create this node by using Add Node, I don’t even need to create a default scene. There is none in my project.
This both saves disk space (especially in the exported game where I care more about that), but it also means my folder structure is much cleaner. A lot of my reusable, more basic objects don’t need scenes.
The last thing it does is helps me determine what scripts I’ve finalized. As I was constructing all the states under EnemyStateMachine, if a script was white it meant that I was still working on it. Once I finalized it, I would delete the existing node and re-add it, as it now had no custom code to it. It was it’s own object.
I think it’s an awesome little quality of life feature!