How to load a template without it being assigned to a page/post?

The basic answer – you can easily load template (or any PHP file really) with *drumroll*load_template(). 🙂

As for best way to implement your custom feed, I think it would make sense to do it by analogue with native WP feeds. You register feed name and handler function with add_feed() and load template in that handler.

Example:

add_action('init','custom_feed_setup');

function custom_feed_setup() {

    add_feed('custom-post-type-xml', 'custom_feed_template');
}

function custom_feed_template($input) {

    load_template('whatever');
}