Banyan Bay and Ramons Village both have swimming beaches but the fact is visitors want to walk out of their room, down to the water and jump in. Thats the perk of renting a beachfront hotel room, you don't have to go in search of a place to swim.
What is needed is education. For our visitors and for our boat captains. We need to tell our visitors how dangerous it can be out in the open water and we need to tell our boat captains that there will be people swimming out there and they need to keep an eye out and travel a farther distance from shore. (many boats seem to travel on auto pilot) It is unproductive to point fingers in an accident such as this, we need to learn from the mistakes made and do what we can to ensure it doesn't happen again. Dive flags, buoys, signage, visitor briefings at check in or a combination.
I personally dislike the idea of telling visitors you CANT do this or you CANT do that, this isn't the US and we don't have those kinds of enforcable laws/rules. Educate them, make sure they understand the consequences of their actions and they will make the right decision.