Good for you. An old employer of mine that I still occasionally work for treats mechanical design work as real engineering, electrical design work as slightly mysterious real engineering, and software design work as strange, wacky black magic that can only be done under the light of a lunar eclipse with the aid of a freshly dead chicken.
Hence, when a mechanical guy has a preliminary design review everyone shows up with the expectation that they'll understand what's said, when an electrical guy has a design review everyone shows up with the expectation that they'll understand what's said, and when a software guy has a review only software people show up -- if you can drag them away from coding long enough to do so.
Drives me up the wall.
Good for you.
The process that seems to work when you have "big" embedded software is to use the VCS and the platoon (_not_ army) of developers to generate release candidates, release the binary image through the same part numbering system that you speak of, and keep the VCS up to date (through discipline, again) in the background to insure reproducible code.
Part of this is done by never, ever, letting a developer submit a binary image for release -- you go out and hire at least one person who knows how to start a build, but doesn't want to play with the code. Their job is to build and test software, and to kick the developer in the shins if it doesn't build or test out. If they can't check code out of the VCS into a virgin directory, build it and have it work, then the software is broken -- with no allowance for the developer insisting on special gyrations to make that particular build work.