Precision would match the input to the output. Why should the tool I use to make Python, JS etc ever produce something that's not parseable by the interpreter for those languages? Why should people ever miss a bracket? Especially when they're learning.
Vim has shortcuts for yankingaand deleting and putting lines and paragraphs, which have little meaning in programming. You can't delete a block, or a statement.