You are up against a design issue, but one that is not hard to deal with.
FiC actually runs the Init more than one time. The last time prior to the form becoming visible, it runs the Init and also passes the parameters.
This multiple Init was causing some developers problems managing the Init and parameters, and the generally accepted design became to test for that final Init pass with the pcount()>0. Just recently that concensus plan was added to the FAA by FiC to automate the issue for new users not familiar with this idea.
But you do run into a problem using pcount(), and you have found it -- what if there are no parameters being passed? In general you can just remove the if pcount()..endif and let your init instructions be executed more than once. The performance hit is very minor.