I am pretty sure the captain has the right to make you get off the ship if you are not following rules at a port. I would report and every time I smelled smoke I would call guest services. I would make myself a pain in the butt of guest services (being nice of course) and make them deal with the issue. One of the main reasons I pay a premium to sail on
DCL is the smoking policy. That makes me mad that they are not enforcing the policy super strictly. I have a right to breathe clean air. You have a right to smoke, but there are places to do so that I can and do avoid.