This is perfect example why named existential types and any
are needed as discussed in Improving the UI of generics - #104 by Moximillian
Meaning semantically more exact thing would be to say:
print(enumInstance is (any Protocol)) // true, as expected
Instance is equal to an existential that conforms to the protocol, it’s not equal to the protocol (type) itself.
Unfortunately current swift syntax obfuscates this :(