In my thesis I have a many floating figures which I then reference using \ref. I use flafter to ensure that they do not appear before they are defined in the source code (See Force floats to be typeset after their occurrence in the source text?).
However, this doesn't stop it from appearing far before the first \ref which points to it, if the figure is located earlier in the source code. Also sometimes I have a \ref on one page and the figure two pages ahead, which makes it come very late in a single-page layout required for the soft-bound copies for the examiners (luckily the final hard-board copies can now be double-sided).
Is there an existing way to force figures (and maybe also tables) to be placed after the first \ref, i.e. on the bottom of the same page or on the next page? Again, this is not what flafter does! Alternatively a way to warn the document author about a figure appearing too early or too late would also be enough. Both would avoid the need to check and recheck all figures in the whole document.

\ref{fig:or\label{fig:would flag any out-of-order pairs. – Ethan Bolker May 27 '12 at 15:28\ref{fig:occurs far away from the\label{fig:by counting the line numbers between them. – Seamus May 27 '12 at 15:39grepalso doesn't handle situations where there is one page between\refand\labeletc. – Martin Scharrer♦ May 27 '12 at 15:46