And there it comes: the importance of history lessons :)
The Flutter is made by Google. Previously, before they fought for Java, it was a motto: write once and run everywhere (for Java). It was a nice and easy method for Java desktop application to set the UI as the platform:
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
But now Java, it isn't a first class citizen for Android.
They invented the Flutter to "write once and run everywhere", just like. Java, but the first class citizen, it isn't the iOS.
I have a code like this:

and it breaks like this:

Ok, is my fault, but I try to achieve what was possible in very easy way with Java: UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
I would expect all logic to be the same, all function calls and automatically be all Material...whateverWidget the Cupertino...whateverWidget and do not break my code.
These expectations seem irrealistic :)
But when I need to do a lot of platform checking and at the code if-else... and tests those cases too, it is better 2 platform.
So or I use I platform ( branding ) with Material or 2 separate app. Kotlin and Swift.
I can't find the real usage of CupertinoApp.