Episerver's categories work fine for what they do, but they're crammed into the legacy Admin area and, compared to the rest of the platform, feel a bit dated to me.
Coming from the Ektron world, the comparative Taxonomy functionality was very front-and-center. While Ektron's eventually came to be over-used (and abused) in any number of implementations, categorization of content using pre-defined lists and structures is still important to many organizations.
If you need the hierarchy, then Episerver's Category property works well for that. But sometimes I don't really need hierarchy so much as I need to manage somewhat flat lists of categories - not all of which are really applicable to all content.
In addition, I may sometimes want to allow multiple selections from that list while at other times it needs to be an exclusive selection. Enter ISelectionFactory.
What follows is a bit of a thought experiment that shows how to use an external data source to feed a selection factory while experimenting with using Episerver Categories as the source.