Yes, but doing things the web-parts way means surrendering a lot of control over the resultant markup. They were released in 2002 before web standards became popular, and they didn't receive many (if any at all) changes in the 2.0 release of ASP.NET.
And if you're developing something that should be accessible you probably should avoid them (apparently certain public websites have to meet web content accessibility guidelines or you could be breaking disability discrimination laws).
Well the problem comes with the output of the WebPart zones not the WebPart itself as you can control exactly what is output from the WebPart in the render method.
There are ways of controlling the markup of the WebPart zones also using control adapters which override the rendered markup.
However if accessibility and web standards are a big deal then you should probably steer clear of WebParts IMO.