Yes, your example is pretty much what I've been doing. But, it's a bit of pain to constantly need to update the functions.php file with output filters. What happens in that I have four or five custom post types and these custom post types have custom fields associated with them, so the function becomes a giant if/else for the output filter. It's not a big deal, but no optimal.
It would be great if in the shortcode, we could just reference the custom fields we want to display for the particular custom post type (custom post types are already supported in the shortcode), and the shortcode will display the custom fields in the order they were entered in the short code (after the excerpt or title of the post). In terms of descriptive text or other formatting of the custom fields, I think that is best left to the functions file, but basic output of custom fields should be in the actual shortcode.