El controlador iría dentro del directorio de tu módulo, en controllers/front, en este caso sería controllers/front/feed.php. Y luego tendrías que declararlo dentro de la clase del módulo, en el método __construct, por ejemplo:
public function __construct() { ... $this->controllers = array('feed'); }
Como es un controlador al que se va a acceder desde el front-end de la web (es decir, no requiere de estar logueado en el backend para poder usarlo), es un controlador "front". Eso sí, para que no lo pueda usar cualquier sin ningún control es por lo que es una buena idea usar un parámetro "key" en la URL que nos asegure su uso sólo conociendo la clave. En el código que he puesto en el mensaje anterior está implementada la comprobación de esa key.
Como tú indicas también funciona, es más, hay algunos módulos que lo hacen como tú lo has puesto, por lo que es un método perfectamente válido. Yo lo suelo meter en un controlador, porque así me da el juego de poder usar la variable "action" que le paso por GET mediante la URL para poder hacer más cosas. Por ejemplo:
action=generarFeed -> Generar el feed (manualmente desde el navegador o programándolo en algún gestor de tareas).
action=rutaFeed -> Ver la ruta donde se ha almacenado el feed.
action=infoFeed -> Mostrar el log de operaciones de creación del feed.
... y así lo que se te ocurra.