色々考えたけど、やっぱり難しいね。

一番簡単なのは、RUNTIME な注釈で public メンバのアクセス許可クラスを指定しておいて、
コンパイル済みの class ファイルを片っ端から逆アセンブルして、リテラル文字列から使用状況を判断しチェック&レポート。

ソースレベルから判断するとなるとコンパイル前にチェックできるけど、結構骨折れる作業になりそう。
リファクタリングツールを1つ作るくらい面倒だよ。