I'm going to echo ctrl-alt-delor's comment and say that as one of the answerers on the original question, my understanding was not that "a few people suggested intro programming with true novices might not be the best place to introduce critical thinking/planning skills for programs". I don't think anybody suggested that. In fact I'm pretty sure that 100% of the people on this site would agree that critical thinking and problem solving are very important lessons to learn, especially with computer science. (And maybe even that computer science is a great way to teach general problem solving, but I'll digress.)
critical thinking/planning skills for programs
I think the source of our misunderstanding is that we haven't really defined what this actually means. Your original question mentioned having students come up with a glossary of classes and functions they might find useful, and drawing diagrams. Imho, neither one of these is very good at teaching critical thinking or planning skills.
I agree with your goal of teaching problem solving, and maybe planning depending on what you mean. What I disagree with is the approach of using glossaries and diagrams to teach these things.
Instead, I think the best way to teach problem solving and planning is by teaching the process of breaking a problem down into smaller steps and then taking those steps on one at a time. I've written this tutorial on the topic, and I try to encourage this process (as opposed to just dumping syntax) in my answers on Stack Overflow.
I don't think diagrams or glossaries really help with this. I think the only way to learn it is by working through the process. You might do this by live-coding a few examples of taking a large problem and breaking it down. I would teach using Processing, so my examples would be visual:
Our goal is to draw a garden scene with grass, flowers, and a bird that flies around. First let's try to break that up into smaller pieces. Can we create a simple program that just displays the grass part? (Which we can further split into drawing a single blade of grass, then a small patch, then the whole screen.) Separately from that, can we create a program that just displays one flower? (Again, that might be further split into drawing a stem, the center of the flower, the petals, etc.) Now can we just get a circle flying around?
The idea would be to actually walk through the process of taking a big amorphous problem and breaking it down into smaller actionable steps, and then writing code to accomplish each of those steps one at a time.
Spending any time on diagrams at this stage is, imho, wasted time. Students don't have a big picture yet, and diagrams aren't appropriate for the scale we're talking about at this level. Similarly, forcing students to come up with their own glossary honestly sounds pretty painful, and isn't how things work in the real world. I think that's what the answerers were saying.