Most fields that are displayed without mixing with other data should be displayed using field formatters.
Other displays, that assemble data from fields together, can be put into theme functions if the display is reusable. If it is specific to the file, leave it in the file. If you are unsure, move it to a theme function.
Business logic should be done in either the formatter or the preprocess hook.