I've built working proof that Complete, Catch, and Status nodes don't have to break the visual wiring contract. My implementation replaces these implicit listeners with explicit output ports — errors, completion signals, and status updates all flow through wires, just like data. The argument that "these nodes already break the visual contract, so Link Call from function nodes is acceptable" doesn't hold when the contract can be restored. The direction should be fewer invisible connections, not more.