"Is there any practical application?" Definitely yes, at least to check code, and bound errors. Especially for huge data or a large number of iterations
"In theory, theory and practice match. In practice, they don't."
So, mathematically, no, as answered by Matt. Because (as already answered), $\mathcal{F}\left(\mathcal{F}\left(x(t)\right)\right)=x(-t)$ (up to a potential scaling factor).
However, it can be useful computationally, because the above equation is usually implemented via the discrete Fourier transform, and its fast avatar, the FFT.
A first reason arises from the will to check that the Fourier implementation, whether coded by you, somebody else or from a library, does what it should do on your data. Sample ordering, scaling factors, limits on input type (realness, bit-depth) or length are sources of potential subsequent errors for Fourier implementations like the FFT. So as a sanity check, it is always good to check that the implemented versions inherit, at least approximately, the theoretical properties. As you will see, as shown by Machupicchu, you don't recover exactly a real input reversed: often, the imaginary part is not exactly zero, and real part is what expected, but within a small relative error, due to imperfect computer calculations (floating point) within a machine-dependent tolerance. This is made visible on the following picture. The FFT is applied twice on a random 32-sample signal, and flipped. As you can see, the error is small, using double precision floats.

If the error is not relatively small, then there might be mistakes in the code you use.
A second relates to huge data volumes or large quantities of iterated FFT computations, like with tomography. There, the previous small relative errors can accumulate and propagate, and even induce computational divergence or errors some details here. This is made visible on the following picture. For a not so long signal $x_0$ ($10^6$ samples), we perform the following iterations: $$x_{k+1} = \mathrm{Re}\left(\mathcal{f}\left(\mathcal{f}\left(\mathcal{f}\left(\mathcal{f}\left(x_{k}\right)\right)\right)\right)\right)$$
where $f$ denotes the FFT. The displayed figure is subsampled. And we compute the maximum error $\max |x_{k}-x_{0}|$ at each iteration.

As you can see, the order of magnitude of the error has changed, due the size of the signal. Plus, the maximum error steadily increases. After $1000$ iterations it remains small enough. But you can guess that, with a $1000 \times 1000 \times 1000 $-voxel cube, and millions of iterations, this error may become non negligible.
Bounding the error, and evaluating its behavior over iterations may help detect such behaviors, and reducing then by appropriate thresholding or rounding.
Additional information: