The whole idea of perceptual is to prevent gamut clipping and thus to maintain a distinction between out-of-gamut colors. This means that image colors are shifted towards the center of the xy chromaticity diagram. To make room for out-of-gamut colors, some in-gamut colors must move too.
The extend to which in-gamut colors are compressed depends on the algorithms used by the profiling software. As there are no icc specifications for the perceptual rendering intent, the implementation is vendor specific -> proprietary algorithms.
There a many methods of gamut mapping. The difficult thing with gamut mapping is to account for the differences in shape of source and destination spaces. An additional problem is: What does the profiling software know about the source space of an image? It has to make some assumptions regarding this source space/colors.
Perceptual rendering applies the same gamut compression to all images, even when the image contains no significant out-of-gamut colors. As Mike Chaney writes "No smart CMM" yet.
In the absence of a smart CMS, photographers will have to assume more responsibility for the rendering of out of gamut colors. Perceptual rendering may be helpful in many cases, but, since it does not take the image contents into account, may not give the intended results and manual tweaking may be needed.
In an old post, Bruce Fraser gives some advice:
He briefly discusses tweaking an out of gamut Dahlia in his Color Management book.
Here is another post explaining how to use Hue and Saturation in Photoshop together with the gamut warning view to tame out of gamut colors:http://www.udel.edu/cookbook/scan-print/ga...mut-huesat.html