запрет использования указателей на функции
Я б не сказал, что запрещает.
Не рекомендует.
В этом пункте он сам с собой не смог договориться. Сначала категоричный запрет:
Function pointers are not permitted.
Нельзя - и точка. Потом в обосновании намек, что если нельзя, но очень хочется, то все-таки можно.
...function pointers should be used only if there is a very strong justification for doing so...
Причем обосновывает запрет не сложностями тестирования (тут я никаких сложностей как раз не вижу), а сложностями статического анализа кода, которые, надо признать, в данном случае действительно имеются.
Но мы все-таки пишем код не для того, чтобы угодить статическому анализатору, а для того, чтобы эффективно и безопасно решить задачу, так что я бы не стал отказываться от столь мощного инструмента лишь на том основании, что его контроль не по зубам современным анализаторам. Жертвовать ради этого паттернами типа
Strategy или
Template Method лично для меня - непозволительная роскошь.