Honestly it surprises me that beacons aren't visible for long distances. Why are they called beacons and why do they have a beam of light that goes up forever if they're not supposed to be visible for miles?
So as far as I'm concerned, this is just a bug to be fixed.
Does anything like this exist? If not, does anyone with experience in this sort of thing know what it would involve to make it?
The reason why beacons have a limited render distance is the same as why you can't see anything else past a certain distance - the game only loads and processes things within your render distance and it doesn't even know if a beacon further away even exists. Sure, you can increase render distance but this exponentially increases the amount of computations and rendering (d^2), so it rapidly becomes impractical to increase it past a point, and even if you force-loaded chunks around a beacon it won't render since they are are out of render distance (much as playing on a server with a view distance set to 32 doesn't mean that you'll see that far if the client is set lower). Apparently, on the old Console Edition beacons render from anywhere in the world but I believe they kept the entire world loaded all the time (hence the maximum world size and global mob caps), which is clearly impractical with "infinite" worlds.
One possible work-around is to store the locations of beacons in a separate location, in much the same way maps can show the locations of markers even when the chunks they are in are unloaded, with the beam rendered at a maximum distance so it doesn't just disappear due to being so small (possibly also rendered as a simple line as you can't make out the details anyway, and avoiding the need to have the tile entity itself loaded, which would automatically occur as soon as the chunk the beacon is in is out of render distance). I don't know if anybody has actually done this though (I just found various suggestions, like the one mentioned above, and this one).