Thanks for answers, guys. I see there is no simple remedy for these issues. For a moment I thought I could create a tavern for visitors only, but there is no such option. So the safest way for now is not to have a tavern at all, which kinda sucks.
Actually I have a concrete suggestion for you: don't put your tavern outside. I think the basic problem is that you are failing to offer protection to your visitors. I establish a tavern inside, once I have a basic functioning military, and werebeasts are a challenge but not impossible to handle.
You might be having really bad luck with your world gen, if you have random visitors transforming frequently, since I've never seen that myself. There are two primary sources I've seen for werebeasts:
* Either there is a werebeast attack on the surface, which is announced like a titan arriving
* Or a tantruming citizen topples a statue in a temple, which is also announced
Are you sure your werebeast problem didn't start with one of those, and then any unexpected transformations that happened after that were due to infections that happened within your fort?
Once you see one of these, if your entrance defenses are set up well, you can get your military in front of any non-military dwarves, or visitors. With any luck, you can take out the creature without getting bitten. Look over all combat logs carefully for any bites. If anyone does get bitten, kill them via some extrajudicial method, such as flooding your hospital with water. Or arrange a cave-in over their bed if they're injured and you didn't make prior arrangements like that. Hopefully an "accident" like that would have less loyalty consequences than more direct methods.
In one game, I had trouble with visitors transforming unexpectedly, and it turned out to be that in the mod I was playing, some of the sorcerers could give their enemies the werebeast curse with an interaction (at least, I think that's only possible in a mod, not 100% sure). So I had to take extra precautions with any visitors that encountered such enemies because they arrived during a siege and survived, carefully checking their combat logs and isolating them if necessary.