Looking at the referred-to thread in the Kicad forum the example shown is where a pin is moved from the bottom of a device to the top, and the wire that was (supposedly) connected to it is left hanging. But, it shows that the wire has the correct net name, and the device has the pin named as such. Surely it wouldn't be that difficult to think, "Hmmm, this wire is on the net for that pin, when not just plonk it on top?"
Of course, there would be unintended consequences - do you really want wires auto-joining whenever you plonk something down? Perhaps there could be some distance-related magnet on a pin (which might solve the queries we see of wires not joining to pins because both aren't on the same dot of a stupidly small grid).
However, if the wire has the right net and the pin isn't connected to that net, wouldn't that cause an ERC error? If so, surely that's the problem solved.
Sure, if your design philosophy is "Always keep the user guessing - or doing the work that the CAD system oughta!"
What we're seeing is the consequence of really not giving a damn about where the lines go or how they got there,
because it'll all get fixed in the mix, later in some ERC/DRC operation. Frankly, that approach is just sloppy as shit,
and reminds me of a brief stint 30-some years ago when the geniuses running a startup I did some subsequent
design rescue work for decided that since they already knew AutoCad and were using it for something else, it'd be
fine for EDA too. So they bought some expensive third-party modules that were supposed to give them the desired
functionality and the result was... my getting called in to do a design rescue. They too took the view that "it's all
just lines, right?" and that real-time netlist creation, checking, and enforcement weren't necessary. Expensive
lesson.
Again, it's easiest for me to cite Mentor's DA (Design Architect) approach, because it's simple, strict, and bulletproof.
To begin routing, select the "route wire" function.
Start a wire by clicking on a pin, then draw it out as desired - click to get a vertex, etc., depending on which routing
modes you've chosen. When you reach a pin you want to connect to, click on it and carry on to connect to the next,
or double-click to end it. You can draw lines in space, but they're not going to be assigned net names because
they're not connected to components pins or defined as supply nets, etc., and will generate warnings.
Once you've generated that net, you can't mess it up by accident. If you, say, move a resistor pin onto an existing
net, it gets an error flag until you either explicitly connect or separate them. The same thing happens if you move
traces around and one overlaps another, a vertex coincides with a line or a pin, etc. In other word, if it
looks connected, but you didn't explicitly connect it, you get an error in real time. Obviously, two wires (or buses) simply
crossing are not considered errors.
Same thing if you edit a symbol. Return from the edit and your connections haven't been messed with just on
account of some minor visual tweak, and if any wires have been rubberbanded into questionable locations (like
running over other pins), the error flags will point them out so you can clean them up.
And none of this involves the user running checks, it just happens as you work. Do I look like someone who looks
at a bunch of wires going to a bunch of pins on a drawing and thinks "Fabulous! I can't wait to transcribe or print
out the names of all those nets so I can manually correlate them and figure out which ones are out of place!"?
Ahem... don't make me say it, but that's what
computers are for.
And to answer your question: "if the wire has the right net and the pin isn't connected to that net, wouldn't that
cause an ERC error?", the answer is "no". The reason is that when you connected them, they were part of the same
net. But when you disconnected them, one got assigned a different net name (or the pin had its net name reset -
I'd have to check), because they're no longer part of the same net. If you want them connected (again), it's up to
you to do so - you can't expect the editor to grasp your design
intention. Or if they weren't connected in the
first place, the editor is
not going to go "well, that looks close enough, so let's just assume they should be
connected."
It's blindingly simple, really. Nothing is connected until
you connect it. If you disconnect it, it's disconnected.
We do not make assumptions, guess, or surmise. If something
looks connected and you didn't do it, it doesn't
count and must be reported as an error - in real time. This is how you maximize design entry correctness and
minimize user effort, period. You strictly enforce a couple of simple rules. Anyone arguing the contrary is just
presenting a nonsensical case for reducing reliability and increasing effort - an argument against one's own best
interests, like the people who vote... no, I'm not going do that...