like everything else, some aspects of front-end are a piece of cake, some are not...
on occasion you run into dicey problems with front-end as sometimes designers are not aware of certain things they should be aware of when creating designs (usability, the fact that most content is generated dynamically, etc..)
sometimes complex layouts are dicey because we can't use tables anymore (I think a big advantage of tables is that it provides a GRID for the layout, something you can't provide with divs alone..) I have gotten pretty good now at doing table-less layouts, but the switch from table-based to table-less was a bit of a struggle at the beginning....;~)
(I believe the main reason we're not supposed to use tables anymore is accessibility (& SEO?); I resisted this idea for a long time, but in the end, of course, I had no choice but to climb on the bandwagon... I still don't quite understand why tables are technically no good for accessibility (or SEO?), but that's become quite irrelevant by now, hasn't it....;~)