Yes, exp build does publish as part of the process. We have a feature request to make this configurable, and are working on it. If your app isn’t detached, then the only thing which will break is if you publish to a newer SDK version than the currently installed clients support. Standalone app clients are set up to only request the newest code for the newest SDK version they support, so that won’t cause any problems.
If you’ve detached the app, this is a bit trickier and a good solution will depend on us having a staging vs. production notion for JS bundles. We have a feature request for this as well: https://expo.canny.io/feature-requests/p/support-multiple-release-channels. It’ll take a bit of time to build. In the meantime, some users work around this by maintaining two separate app slugs or two separate accounts and leapfrogging them.