This came up when reviewing #62118. There are too many StringDtypes and FooStringArrays. Apparently pd.ArrowDtype can accommodate some specific types of pyarrow strings that StringDtype(storage="pyarrow")
cannot. I propose that we
1) Extend pd.StringDtype (and ArrowStringArray) to allow it to support the specific variants of pyarrow strings we want to support 2) Deprecate support for those in ArrowDtype/ArrowEA, moving users to the StringArray. 3) Try to refactor all the FooStringArray variants down to just one StringArray.
Comment From: jbrockmendel
Getting rid of the NumpySemantics classes is straightforward. Combining the ArrowStrimgArray into StringArray would take real effort/thought