Accumulating / Gathering / Aggregation

However, the “Accumulate” node returns n items, with only the last one containing the fully accumulated results – even if “Execute Once” is enabled, and even though “Function” nodes are documented to run Once, not once per item as the “Function Item” node does. Am I misunderstanding the documentation?

Yes, that is probably not totally clear or easy to understand in the beginning. By default do nodes execute once per item. So let’s say you have 10 items, each contains an URL. If you send that data in an HTTP Request Node it would make 10 requests. One request for each item. If you set “Execute Once” it would only make one request, to the very first URL.
So that option it is only about the items it processes and how often to execute for them. The code of the Funktion-Node runs only 1x no matter how many items there are. The code of the Function Item node runs for every item.
The small number on the nodes is about how often the node did “run”. So in the above URL example did the node “run” only 1x but it did process 10 items.
In probably 95% of the cases do nodes run only 1x in n8n but if you have loops or you connect multiple nodes to a single one, they run multiple times. And that is then when this number in the corner gets larger than “1”.
So in your above example did the HTTP Request node run 2x. First, because it got data from the Start node, and then it did run a second time because it got data from the IF node.
The HTML Extract Rows node did run 2x because the node before it got 2x data and so also it will execute 2x.

Totally agree that the current solution, collecting the data with a Function-Node, is less than optional. It is honestly very bad and impossible to create for new n8n users. It is, however, also just a temporary workaround till we come up with a proper solution. That is sadly currently the case with many things in n8n. Another example is splitting an array into multiple items requires right now a Function-Node. Also for that do we have to come up with an easy node that people can just plug-in. Right now we want to, however, make sure that we do not just push out some half-baked solution, we rather want to do proper research and invest time in thinking how it could properly be handled in the long term. That does obviously take longer but I think it is best for the product in the long term.