Because of the constrained "disk" for many devices on which OpenWRT runs, one source code tree often builds many pieces (sshd, ssh, sftp, ...) or variants (blah-full, blah-mini). See Packaging guidelines for some more details.
Typically one creates a "patch" file and lets the build system apply it into all the proper places. Some use quilt to manage the patches, but unified diff files or those from git diff work too.
The build and staging directories generally should be thought of as build remnants, not build inputs.