In this paper we provide a detailed discussion and evaluation of the theoretical and practical differences between static and dynamic component models as the foundations of programming wireless sensor nodes. As the static benchmark we examine the nesC component model underpinning TinyOS; and as the dynamic benchmark we examine the OpenCom component model underpinning the Lorien operating system. Both models are well established in their respective domains and have at least 2nd generation implementations available. We identify 4 key mechanisms required by the dynamic approach beyond those needed by the static approach, and using the TelosB implementations of both models we demonstrate the performance differences involved in the support of each of these mechanisms. We conclude that while the static approach has inevitably better performance, the overhead of the dynamic approach is suffciently low that it is a promising foundation in support of future WSN research in dynamic and adaptive systems.