Как должна выглядеть UML диаграмма компонентов для функционального подхода?
Во первых. Функциональное программирование не запрещает дата-объекты. Вот к примеру если у вас есть таблица Employee из стандартного учебного набора Oracle то она может быть отражена таким образом в Haskell:

data Employee = Employee {
 empno :: Integer,
 ename :: [Char],
 job :: [Char],
 mgr :: Maybe[Integer],
 hiredate :: Day,
 sal :: Integer,
 comm :: Maybe[Integer],
 deptno :: Integer
}

В том что Haskell это достаточно строгий язык который лежит в категории ФП я надеюсь никто не сомневается.

А в мультипарадигменных языках типа Scala с объектами 
вообще нет проблем. Берите - делайте объекты сколько надо.

Во вторых, UML проектирование - это такой-себе уровень абстракций, который удобно
обсуждать с бизнесом и показывать на слайдах. Но он вовсе не обязан следовать буква-в-букву коду.
Архитектура - это вообще не про код. Это про намерения, про взаимодействие, про стандарты и смыслы.

Методы UML объектов вы можете сделать функциями. Я не вижу в этом чего-то нерешаемого.
Рассматривайте метод как функцию где первый аргумент - это сам объект. Это такой легкий 
троллинг ООП. Типа ООП - это функции где первый аргумент == this.
Функции это блок обработки данных (вход -> выход). Можете рисовать поток данных аналогично обработке в DSP (цифровых сигнальных процессорах).