Well I guess you are right in that the LLM puts one node on the canvas after the other - but surely not only one per interaction (i.e. K-AI can build workflows of multiple nodes).
My guess is that in the backend this is actually being done by creating the XML structure - probably with at least some KNIME-specific RAG to assist the model with making less mistakes.
I have not tried to see if e.g. Claude Opus / Sonnet 4.6 are capable of providing a full .knwf that actually works, but seems like people have tried: