The pain of the p tags in Sitecore

One of the things that I feel like are something that has not been really decided on is P tags in a CMS system. There are multiple ways to handle this issue but none of them are the perfect solution.
Wrap around a p tag around the fields. What happens when the p tags are already included? Hide empty p tags only works in everything except for for IE
The css should support the p tag and no tag. I would agree but sometimes it is going to take more effort to support than it is worth it.
Suck it up and always support p tags. Another approach is to force the client to make sure the p tags are generated and if not show them how to fix this. This only happens when the client does not enter any html.