Two GFCI on 20A bathroom circuit
The bloke at the big-box store is out of his mind.  Having multiple GFCIs fed from the same feed is not a problem whatsoever -- it's something that's done all the time (just imagine a panel loaded with GFCI breakers).  Furthermore, the requirements for fixtures in 410.10(D) only hold for a zone that extends 3' beyond the edge of the tub or shower stall and 8' high.  Ordinary fixtures can be used outside this boundary.

In your case, given that your choice of fan/light combination apparently must be GFCI protected in order for it to be used in a damp environment, your solution is a reasonable compromise given that you are using a dimmer here.  However, it is possible to make it so that the shower light is GFCI protected while the cans are not, while dimming them both synchronously, but that requires a fair bit of extra hardware.

In particular, you'd need to use a 3-wire fluorescent dimmer such as a Lutron Maestro MAF-6AM or Skylark SF-103, as well as two Lutron PHPM-WBX-120-WH units mounted in their own two gang or 4" square boxes to go with the 3 gang box you're already called for.  (Other manufacturers make similar products, but both the Leviton and Eaton/Cooper versions are FCC Class A devices i.e. not intended for residential use.)

If you're curious as to how such a crazy setup is wired up, see the wiring diagram below.  If you're not comfortable following the diagram below, ask your nearest electrician to follow it for you.