Carnival allows smoking in all cabins except the Spa cabins on the Dream and Splendor (and soon to be Magic)....
this is not to be confused with a cabin that just happens to be on the Spa Deck of any of the other ships.
The bad news is that it can happen.
The good news is that in 40+ cruises, we have only experienced this about 3 times.
All 3 times were in an interior cabin.
You need to know what the cabin steward can do.
They can go as extensive as they need to...even replacing all the mattresses, washing the walls and cleaning the carpet. They can also run an ozone machine in the cabin, but you can not be in the cabin when they are doing this.
I also always carry a bottle of Ozium (Walmart car section) with me. It helps more than sprays like Febreze.
While the good news is that it has not happened to us much, the not so good news is that all three times were in the past year or so....
so I fear that it is an issue that is getting worse for some reason???
FYI, RCCL does not allow smoking in the cabins...just on the balconies.
Celebrity and Azamara do not allow smoking in the cabins (not sure about balconies)
Oceania does not allow smoking in the cabins or on the balconies.