Better in the long run to use post date or custom taxonomy to sort/separate posts by year?

I can’t see any practical reason to use a custom taxonomy here. You can already query posts by year using OOB query and archive stuff (see this Codex article about the “year” WP_Query parameter, and this one about the “yearly” mode for wp_get_archives()).

If you’re asking purely about performance, I’d consider this kind of thing (a single table query vs. a simple join) a “micro-optimization”. For 95% of WordPress sites, it won’t make any visible difference. And if your site is at the point where you need serious tuning, there are probably better places to focus energy (like identifying really slow queries, and having a good caching strategy).

Hope that helps?