Clearly it is possible to "program" in natural language. I have one- and few-shotted a number of apps that meet my requirements.
Generally as the number and complexity of requirements grows it becomes harder to parse them if they are in a poorly structured natural language format.
I can't think of a time that I have provided specifications in natural language with sufficient rigor that if I was to run the prompt ten times, the ten generated programs would look identical or provide exactly the same outputs for the same inputs under all situations.
Whenever I find that I need the rigor such that the code could be considered to be a cache, not an authoritative artifact, I find domain specific languages to help me to ensure the comprehensiveness of my requirements around the dimensions that I care about.
I also find such structure to aide collaboration with other humans trying to understand or extend such specifications.
So I think for code to become ephemeral, for substantial pieces of software that require the documentation of many complicated requirements, writing such specifications in natural language is not the best interface and would require substantial support from LLMs to project them in ways (flow charts, UX demos, etc) that humans could reliably understand and mutate them without introducing regressions.
But we'll see. Last year I still thought git was an appropriate version control system to use!