How does the undecidability of Extensional Martin-Löf Type Theory apply to real type-checking compilers?
You can't expect to find a ready-to-use proof of Id(a,b) when you need one. For instance, you have proofs of Id(a,c) and Id(c,b), but not of Id(a,b). You would need some intelligence to find automatically new proofs of equality, and avoid always having to ask the user to do the job manually. But there is no perfect algorithm to implement such an intelligence: whatever you implement, it will always have limitations.
There are however solutions to this difficulty, see for instance the Andromeda project.