Updating index tables' sortable attributes on AJAX
The modifyEntrySortableAttributes technically gets called each time you load new elements on the index page, just so that the controller can confirm that the posted order attribute is valid. But the only time that your plugin can actually affect what is shown in the dropdown is the first time it’s called, on page load.

Maybe a better way to go about this would be to have your plugin return all the available options up front, and then simply hide/show them with JavaScript when the source changes.