Are noncausal filters ever used in practice?
Yes.

The problem with a system that operates in (near) real time is that you can't look into the future. One way you can deal with this is if you only need a finite amount of look-ahead is to put some delays and then delay the output so you're still causal.

However, many filtering problems have non-causality allowed, e.g. filtering a file on a disk (which occurs a lot. Audio or image or video files you download, time series such as finance data, or histories of systems). For example, you can collect a time series and smooth it with the rauch-tung-striebel filter rather than running a fixed lag smoother.