Complex products cannot have cross-functional teams. E.g., a car company cannot have a team that can design anything in the car. John Deere cannot have a team that can design anything in a tractor. A company that makes MRI machines cannot have a team that can design anything in an MRI machine. A company that makes AI-based training software cannot have a team that can autonomously create all parts of the software.
These products are too varied. Cross functional teams are only possible for simple immature products.
Cross-functionality is better seen as a model to aspire to. At the same time, if taken as an absolute, it can be very dysfunctional. E.g., a team of ML experts will produce much better models than a single ML person who is embedded in a software team.
There are tradeoffs. The best approach is rarely an absolute.