У этих объектов нечем занимать память, переменных членов класса в
них нет. Статические методы вырождаются в обычные функции, которые
обладают свойством хорошо инлайниться, так как определены в
описании класса. Точно так же как и в С они могут быть один один
раз в коде и вызываться из разных мест. Это уже на усмотрение
оптимизатора. На самом деле, нет никакой необходимости вообще
создавать эти объекты. Это я пример просто для понимания сути
происходящего привёл. Намного эффективней
работать именно с типами.
Их проще передавать между классами.
using LED = TLed<GPIO::PA5>; // Вешаем светодиод на ногу PA5
using KEY = TKey<GPIO::PC13>; // А кнопку на PC13
И всё, дальше можно использовать в коде LED и KEY в соответствии с их "повадками".