The API name is used all the way down to the core Flow engine. At the top level, the Flow Builder, you can generally use API names in formulas to obtain values. I'm not sure if all types of API names can be used, but many can be used in interesting ways. For example, you can refer to the API name of a Choice to get the value the user selected.
Underneath this is an XML representation of the metadata, a flow-meta.xml file. This file requires an API name for every element, as that name is used to link components together (via
connectors and other types of nodes). This is the actual file that is used by the Salesforce APIs to work with flows. The names need to be unique, and present, so that the nodes are all connected.
This is further built-in at the database layer, where the API name is presumably used as a composite key (Flow Version + API Name) to store the metadata for your flows. The name is required here, too.
As for "why it's not automatically populated", well, it is (or is supposed to be). Make sure you're using a supported browser. If you are, consider logging a bug report with Salesforce Technical Support.