...
Launch vehicles are autonomous and do receive any uplinks. The FTS is moving to an autonomous system and it won't use receivers.
By launch vehicles do not receive uplinks, I assume you just mean the first stage. The second stage definitely can receive uplinks, otherwise they wouldn't have been able to choose whether or not to abort the re-ignition of the second stage during the CRS-1 mission. (Where the secondary payload had to be released too low due to fuel constraints after an engine failure and NASA margin requirements).
Is there any source for the information that they don't have any uplinks to the first stage? (Or do you work for SpaceX so you are the source? I know that can happen here.)
I also would be surprised if range safety gave approval for there not being an operator with an FTS button, no matter how much automation you put into the stage.
While there are constraints on what can be changed mid-flight, if an uplink was available, changing landing location would not be technically challenging, especially if you were just selecting from some pre-defined scenarios. All you would have to do upon receiving the message (after error checking) is swap out a pointer. This isn't something time consuming.
if ( boostBackData->okToChange() ) { boostBackData = *ASDSBoostBackData;}
A better programmer than me may know an extra safeguard or two that might be needed especially if things are multithreaded. Worst case is that the message is either ignored or not received, and the stage does what you originally told it before launch.
Note that I agree with the logic that they probably haven't implemented this, since the need to change landing site is very low probability.