The use case is to throw a compile-time error if a particular tool we wrote is being misused (basically, "You can only register protocols!").
The API for the tool is very similar to that of transit's declarative structures for serialization and deserialization handlers, except that it's built to protocols instead of raw types/records.
Because protocols are not reified in CLJS, and `satisfies?` is a macro that will happily and silently answer nonsense questions with `false` when given a non-protocol, a sensible compile-time error to guard against programmer mistakes has been very useful.
Apologies if you meant something else by the question.