A compiler's view of code resembles a big map seen thru a soda straw. The compiler can, for example, track a river and ensure that roads do indeed have bridges over it. But such a tiny peephole can't see the BigPictures.
Because we have this ability, far beyond the compiler's ken, we want to draw the entire map. When we do, we don't want to consider tedious details that a compiler can consider instantly. We seek an efficient DivisionOfLabor between the human and the compiler. So, instead of complaining when bridges are not found, the compiler can just add them and keep going.
--PhlIp