Most users spend a large fraction of their IDE time w/ incomplete code that does not (yet) compile. As you noted, we can't give constructively correct phase X for that, but it is much more important to give good UX. An LSP can and should prioritize a reasonably helpful mouse-over in incomplete code over a perfectly correct one in all edge cases of complete code.
That may mean inaccuracies in your usage that are not considered bugs by ClangD or any other LSP. =/