When holding a compass, shift clicking on an active beacon block binds the compass to that block. To me, this is completely intuitive. Ever since beds were added, compasses are nearly useless, and beacons never really seemed complete. Sure it gives you a buff and you can see the beam if you're close enough, but so what? It's still plenty easy to get lost out in the wide world. I believe this is killing 2 birds with 1 stone. It's a balanced and vanilla friendly navigation aid without resorting to minimaps.
I don't know how it would work on the backend, so I can't speak for the feasibility of having the compass constantly check whether the beacon is still active. Maybe a better solution would be to have breaking the beacon update all compasses bound to it, resetting them to spawn.