No, this is the key, you think we have pages because of files on the file system, while we have pages because we want [[wikilinks]] i.e. we want to turn words in our paragraphs into references by simply adding []. Storing pages as files is a consequence, not a cause.
Now I understand while you brought the file system in this discussion…
Logseq is not constrained by the file system at all and it already abstracts it away with its DB.
I hope now you understand why I proposed block aliases, because we would be able to define a new node from context instead of creating a new page.
Think more about it, block aliases are all we need: if you want a block to be treated like a page, assign an alias and use that as [[handle]] in properties and queries.