I actually used gerbv in the past but I was not aware it can read pnp files. I tested with some random file, it shows only a square in the component location and component designator printed 3 or 4 times all over the square. The square is the same regardless of component size and shows no component orientation. Not usable.
zofzpcb seem to be a nice tool but I see it oriented to create nice pcb renders. I was unable to find a way to load pnp files into it.
I think by and large what you are looking for is normally a tool provided by the p&p manufacturer or built into the pick& place software itself. Other options are Aegis circuitcam express, Unisoft or Fab3000 (which sort does what you want but is more useful for creating a pick and place file from gerber) . There is also SMT-Maestro which shows a little box for each device with a pin 1 marker, but is mostly a tool for merging a pick and place file with a BOM and outputting a new pick & place file with the columns you actually want, in the order you want. SMT-Maestro is free but has vanished off the internet, you can find a dropbox link in the SMTNet threads.
Here is one of the screens in Essemtecs ePlace as an example. In the CAD Conversion screen previous to this one, you import the pick and place file and tell ePlace what each column is, the units used and match the part numbers or values to your internal part numbers the machine already knows & mark through-hole or no fits as ignore. On this preview screen you can alter the rotations and spot any issues. Rotation alterations & part number matches are saved in an adjust file for use next time, we keep one per designer. In this software, while you could manually hack the CSV data on screen to fix location issues its easier to put the board in the machine and correct it using the overhead camera. You can see a need for this process in this example as certain shapes in this creators library have Pin1 defined as component center, sadly (in this version at least) there isn't a built in method to create a rule to apply an offset to a package, but then perhaps that could get messy .