Since the array without cast is not normal array (and would be rejected), I wonder if the cast is needed.
Because casting to jsonb is the only legitimate interpretation here.
only until somebody does support for hstore, xml, ... some future data type
Minimally now, we have json, jsonb types.
More generally, a sequence of characters has no meaning to the system unless and until an externally supplied type is given to it allowing it to interpret the sequence of characters in some concrete way. The system will never assign a concrete type to some random sequence of characters based upon what those characters are. Forgive the idiom, but to do otherwise would be putting the cart before the horse. It would also be quite expensive and prone to, as above, different types deciding on the same textual representation being valid input to each.