Gabriel,
I have frequently talked about the range metadata setting for PORTS on a subnetwork, which can be set to either list or value and is crucially important and useful.
But the corresponding OUTPUT RANGE for a node or network, available under Metadata/Settings, is something you generally don't want to muck with. I'm not even entirely sure why it's exposed in the UI. It is sometimes helpful to see whether the output of a node is set to list or value, but it will almost always break something if you change that setting.
Some NodeBox nodes are designed to output a single value, like the add node. Input 2 + 3 and it will output a single value, 5. If you look at the settings for the add node, its Output Range is set to Value. Changing it to list seems to produce a list of one item which, as far as I can tell, makes no difference whatsoever.
Other NodeBox nodes are designed to output a list, like the combine node. Its Output Range is set to List. If you change that to Value, something WILL happen and it's not good. Instead of producing a normal Nodebox list of individual items, the node will now output a single thing called an arrayList.
If you look at the output of an altered combine node like this (with one or more items being output) in Data view, you will see a single comma-separated list enclosed in square brackets. This is the giveaway that you are seeing an arrayList. I talked about arrayLists in a recent posting:
https://forum.nodebox.net/t/8101233582/identify-node
An arrayList is not a valid Nodebox data type. It's basically an underlying Java data type that, in rare circumstances, leaks through. If you try interacting with an arrayList (by feeding the output of an altered node into another node), strange things will happen. As I said in the above post:
"But even though you can cause them to appear, you should not. They do not provide anything you could not get through other means, and if you attempt to use them you will soon run into trouble. An arrayList presents as a single item, but may unpack its contents if you try to do anything with it. It may claim to be one object but produces multiple outputs when inspected. And the items it outputs may look like normal Nodebox objects, but misbehave downstream. Just say NO to arrayLists!"
That said, I did discover ONE use case where changing this value actually was beneficial.
The contours node in my library is one of my most useful and powerful nodes, even though it's very simple. All it does is turn a path (like the outside and inner hole of the letter a) into a list of its component contours. If you look inside, you'll see that the first thing it does is a lookup of a path's contours property.
The lookup node is normally set to return a single value (its Output Range is set to Value). In this case this returns one of those unusable arrayLists. But if you simply go in and change the Output Range of that lookup node from Value to List, it suddenly outputs a list of individual contours. Those contours are not directly useable in Nodebox, but you can convert them to points and reconnect them to form normal paths.
So this was a weird corner case in which it was possible to change the Output Range of nodeBox node without breaking it, and that change was actually quite useful.
That is, however, just about the ONLY time I have found such a change to be useful.
So the short answer: you're right. The Output Range setting is not generally useful, is not something you need to muck with, and you should feel free to ignore it.