eas update channels question

I’ve read the documentation several times very carefully. Have number of releases in testflight as well and my experience does not match how I understand the eas update documentation.

My understanding is that when I push update, it gets routed via the channel and the runtime/dist versions. E.g. when pushing update to preview channel with app.config.js having version 1.0.0 (5), that update would be routed and installed only by the apps built with -e preview option and same version. Is my understanding correct, or is routing happening only via the channel value?

what adds to my confusion is how eas automatically increments the ios.buildNumber but not everywhere. This happens when I don’t increment it myself, but build & submit. Somewhere along the way it’s incremented automatically.

Constants.manifest?.runtimeVersion equals what’s fixed in my app.config.js while Application.nativeApplicationVersion reflects the auto-incremented value.