В основном, это похоже на шаблон для формализации ветвления в пользовательском интерфейсе на основе задач.
Допустим, у вас есть форма с галочкой для дополнительной функции, но эта функция требует дополнительной информации, которая слишком сложна для размещения на той же странице.
Использование этого шаблона позволяет делегировать сбор информации другому компоненту.
Кроме того, применяется своего рода шаблон стратегии, поскольку у вас могут быть различные подсистемы, способные собирать одну и ту же информацию, все они наследуют PageFunction (of T), так что код, фактически вызывающий их, не должен знать любая деталь об этом.
Это всего лишь некоторые идеи, я не совсем изучил их.