I disagree here, as you can theoretically wrap every possible instance of any type into an existential. The existential will have the behavior depending of the type it wraps. There is no need to limit this to protocol-as-a-type.
class A {}
class B: A {}
let a: A = B()
// ^ what is this container? In my eyes, this is `any A` existential.
Theoretically you can write any Any and with the preferred syntax from the pitch author Any<Any>, but the latter could potentially confuse the compiler.
struct T {}
let t: any T = T() // theoretically okay, but useless for structs