Time Out says
A prosthetically-altered Christina Ricci stars in this wilfully quirky fairytale set in a present-day city resembling both New York and London. If you thought Cyrano de Bergerac had it bad, meet Ricci’s Penelope: she’s got a veritable pig’s snout for a nose.
Said snout is the result of a family curse that can only be broken when Penelope is accepted by ‘one of her own’. Fearing ridicule, Penelope’s rich parents hide her away and audition aristocratic suitors, all of whom do a runner when they see the prize. Desperate for a picture of the famed beast, reporter Lemon (Peter Dinklage) sends in gambler Max (James McAvoy), who’s armed with a secret camera. Max falls for Penelope at the sound of her voice (she’s hidden behind a two-way mirror), but his deception drives Penelope to run away from home.
Ricci and McAvoy work well together, his worldly charm nicely offsetting her cutesy naïveté. There’s solid comedy casting with Catherine O’Hara as Penelope’s paranoid mother, and a likeable turn from producer Reese Witherspoon as biker chick Annie.
A few novelty cameos feel cheap – most notably Russell Brand and Lenny Henry – although Nick Frost and Ronni Ancona are decent enough support. Too many characters compete for attention, however, and the plot is as cluttered as the casting, cramming in messages about celebrity culture, image obsession, self-worth, family ride and racism. The story’s too busy, and the tone too light for many of these ideas to resonate, making ‘Penelope’ an often enjoyable but largely forgettable watch.