The zstyle feature and its specific application to completion were developed by a consensus of people on the zsh-workers list at the time, several of whom are still present (though not the primary author). The zstyle mechanism in particular was meant to be very general and in fact knows nothing of separators. It's a flat namespace with some put/test/get semantics wrapped around it. The needs of the completion system then led to the creation of an artificial hierarchy within the flat zstyle namespace. Ranting about * matching a "separator" colon is like ranting about ellipses skipping over periods and commas when a paragraph has been abbreviated.