Does it make sense to set a constant like THEME_IMAGE_DIR? Doesn't it make sense to assemble the theme's image path once, in a constant (eg THEME_IMAGE_DIR) and use this throughout the theme? This seems like too obvious, maybe I'm missing something...

Where would the ideal place for this initialization be? Module, theme, dark side of the moon? Inspired by Clive's answer

Declaration:

global $base_path;
$theme_path = drupal_get_path('theme', 'my_theme_name');
define('THEME_IMAGE_DIR', $base_path . $theme_path . '/images');


Usage:

$content['something'] = '&lt;img src="' . THEME_IMAGE_DIR . '/inner-book.gif" /&gt;';
Dark side of the moon. Definitely ;) 

Seriously though...any file that's included in every page load should be fair game to put this in. Personally I'd put it in a .module file so it's included before the theme level is even considered, but if you're only using it at the theme level then your theme's template.php file would be fine too.

As for whether or not it makes sense...if you find yourself repeating code of any kind then it makes sense to implement a constant/global/function to wrap around it. As the value in your particular case will not change in a single page load, a constant makes perfect sense to me.