I've never actually tried subcontracting a design myself, but my understanding is that it's pretty typical.
You still have the risk problem -- the designer might turn in terrible work, or might turn in great work that the customer thinks is terrible -- but I'm guessing that much of the risk is mitigated: image prototyping and UI sketching starts pretty early in the process and features lots of iterations, so you get early warning if something is going wrong; moreover, most web frameworks are designed around the assumption that design elements will change very frequently, because people have learned how much customers love to change the color of the bikeshed at the last minute. Oh, how they have learned.
The scary part of subcontracting is when you subcontract something tricky and coding-intensive, like the entire event-planning module, or the video-sharing module. Then maybe you end up a week away from launch with two weeks of programming left to do. Or maybe your subcon delivers something that looks superficially correct, but which falls over dead during load testing when it sees more than one query at a time, and now you have to rearchitect it under deadline...