Sorry if the wording is confusing, let me explain:
Our Account object is (indirectly?) a parent of the Asset objects, so it is possible to run a cross object filter on Accounts with Assets, and to further filter which asset records I'm interested in returning account info for, AKA
"show me all accounts with assets whose status equals 'Shipped'"
All well and good, but my question is about pulling Accounts with two different types of assets, each with its own filter criteria, AKA
"Show me all accounts with at least one asset whose status equals "Shipped" and at least one other asset whose status equals "Shipping".
The key part of the question is about returning only accounts that meet both criteria. After all, I could create a single cross object filter, and set the Asset to filter on 'where status = "Shipped", "Shipping"'. Doing so would return all accounts that have both types of assets, sure, but it would also return all the accounts that just have "shipped" assets, as well as all the accounts that just have "Shipping" assets.
I also tried creating two asset Cross Object filters on the same report, one with asset status equal to "Shipped", and the other with asset status equal to "Shipping". Unfortunately, that didn't return accounts that had both asset types (in fact it behaves quite oddly, not sure how it works).