The multilevel modeling post uses ArviZ the “correct way”. ArviZ is built on top of xarray, relies on it and tries to avoid duplicating functionality that is already available in xarray. Using xarray directly is very much encouraged and recommended; and done in that notebook, it uses xarray plotting, it uses xarray groupby capabilities, it uses fancy indexing and automatic broadcasting and alignment of arrays…
I know xarray can be hard to understand, probably ArviZ too, and it is important to know where docs are lacking. It is probably worth it to add a note on the Working with InferenceData page about how all dimensions can be subsetted with .sel or .isel not only chain or draw like the example