по поводу "пулов":
при pconnect() в общем случае всё выглядит так:
кол-во открытых коннектов == равно кол-ву чайлдов Апача.
никаких "пулов" и "пометок" нет.
функцию попросили найти уже готовое соединение в списке или открыть новое - она именно это и делает.
сколько там уже его используют - функции все равно, они друг другу никак не мешают, это дело пользователя.
по поводу "too many..":
это проблема недостатка квалифицированных администраторов.
дефолтовое максимальное кол-во коннектов к MySQL меньше, чем то кол-во чайлдов, которое позволяют "рожать" апачу.
поскольку администраторы не подозревают, что это кол-во можно изменить в настройках MySQL, они рождают мифы о "глюках" и "плохости pconnect".
к сожалению, уже это само по себе создает проблемы.
по поводу "зачем":
в случае с MySQL pconnect() помогает сэкономить некие миллисекунды, которые тратятся на установку соединения.
на действительно загруженных сайтах это может чем-то помочь.
однако, коннект к MySQL устанавливается _действительно_ быстро (в отличие от Оракла, *sigh*..) и обычно такая экономия не является необходимой, т.к. я себе слабо представляю случай, где коннект к MySQL был бы пресловутым "узким местом".
по поводу "ничего не понял, объясните коротко":
юзайте connect(). оптимизируйте код и запросы.