Only three reasons I was initially thinking observer on this one. First it removes data querying and business logic from the presentation layer (strong reason in my little world). Second only one SQL query is needed versus one per zen_get_products_manufacturers_* function call (weaker reason in my little world as most SQL queries are very fast). Third, it provides yet another example of how to use an observer.

Originally Posted by
mc12345678
So curious, in the concept of using the observer, that would still require modification to the template file correct? ...
Yes, the exact same ones as you already provided while I was typing (just using a variable in place of the zen_get_products_manufacturers_* function calls).

Originally Posted by
mc12345678
... Would declaring the variable in the observer as global maintain it in scope for "global" use? ...
Yes.
Declaring the variable as in the global scope (and making it available) inside a method (class function) works.
Code:
global $my_special_variable;
Assigning and accessing the variable using $GLOBAL in the observer also works.
Code:
$GLOBALS['my_special_variable']