Things in Stringify can have an WHEN state or an ONLY IF state (in their context as triggers). Ergo, removing a link while retaining knowledge of state is more complicated than you perceive it to be. And the degree of complication increases exponentially with flow complexity. As @Kris has pointed out, the only "clean" way to remove a link is to delete the Things it is connected to on both sides.
To illustrate the complexity with a very simple example, consider the following two flows:
They look identical, but are very different because the Things used for WHEN and ONLY IF are swapped in the two flows.
That's not true. Links can be added before configuring the Things between them, as show here:
Not sure exactly what you mean here. But assuming you meant to say that deleting a link should return a Things on either side of it to an unconfigured state, I have flows with multiple Whens and Only Ifs, and I definitely wouldn't want that to happen.
Edited to qualify the first sentence