That sounds right. Mako is a template library that happens to allow Python code to be embedded. Many template libraries (e.g. Django, Jinja2) don't allow that. I'm not surprised that you can't access Python functions embedded in Mako templates outside of the template they are embedded in.
I tend to think of embedding Python in a template as a technique of last resort. In web apps that means doing the calculations in view/controller functions/classes (terminology and methodology vary from one framework to another) and putting resulting Python data objects (strings, lists, dicts, etc.) into the context that the template engine uses during rendering. In blogofile that probably translates to doing the calculations in controllers and/or filters. Out of the box blogofile and blogofile_blog provide controllers, filters and templates to do a collection of bloggish and other static site things, but for specialized purposes that go beyond that you probably need to implement your own. Have a look at the blogofile.com
source  for some examples of custom controllers and filters, and at Mike Bayer's blogofile hacks post  for another example of a custom filter.