In reading the web about GPIO settings, I have discovered that the pin settings at "time zero", ie boot up, are not always the same and vary between versions of Raspbian/Linux.
The above is not true. The pinblock will be set to input on bootup; and that is the safe option, by the way! If anything, your rc.local code should make sure that the pinblock is set to inputs by default-- if anything!
The reason for this is that if you accidentally short two inputs together its harmless... but if you have stray outputs holding a 3v3 signal on them... and one of those is accidentally shorted, its sayonara PI !
Also, if you set the pinblock channel at bootup and then you run code which tries to setup the pinblock you'll get channel already in use errors (unless you do the wrong thing and quiet the error messages)!
The best thing to do is leave the pinblock alone at bootup (or set it to inputs, and cleanup() ) and then do all of your allocating to the gpio within your py code, or pigpio whatever.
do what you want, just saying...