Всё далее сказанное - исключительно личный опыт и мнение, на истину не претендует.
Лучше написать верстку с уклоном на статику: на чистом html+css,
Я бы написал именно так, если это возможно. Это как минимум должно быть быстрее чем то же самое + JS.
на bootstrap с добавлением css
Это скорее всего будет быстрее с точки зрения получения результата, но на счёт качества такого решения - есть большие сомнения. Вообще, одно из правил HTML'а/вёрстки - если есть возможность реализовать что-то меньшим кол-вом элементов - нужно делать именно так. То есть, если физически есть возможно сделать что-то с помощью одного
<div/>
'а, а не двух, трёх и т.д. - нужно делать это одним
<div/>
'ом (без фанатизма конечно).
или сделать более динамично: на php, реализовав все через цикл для получения вывода элементов: «Категория», «Товары», «О нас» и т.д.?
Это напрямую зависит от Ваших задач и потребностей. Если Вам нужно что бы меню формировалось на сервере - то его нужно формировать на сервере. К вёрстке непосредственно это не относится. Лично я в своей практике использую и тот и другой подход, а иногда оба сразу (часть меню - статическая, часть - динамическая), в зависимости от желаемого результата.
P.S. Про "функциональность" не могу судить в контексте данного вопроса, но по скорости загрузки, - вариант без Bootstrap'ов и JS - должен быть максимально быстрым.