Revisited the idea of assigning Blockers to Swimmers today.
Previously, the sprite-swap was the only thing holding this back. It required an additional "Swimblocker" lem state, which was piggybacking regular Blocker code for its implementation whilst relying on the real-time sprite swap for its visual effect - messy, and the Renderer really didn't agree with what I was trying to do.
So, this time around I've opted to simply equip the existing Blocker with the ability to "tread water" - we draw the sprite
behind the water object and have it move up and down slightly, achieving more or less the same effect as the previous Swimblocker sprite-swap:
Very happy with how this has turned out. Let's give it a try in 2.7 and see if we like it; we can always revert back if not.