Does anyone know for sure exactly how the bin/compile phase of a buildpack relates to the slug and deployment? Does the entire BUILD_DIR from the compile phase get tgz'd and unpacked at /app?
Yes, as specified in the buildpack documentation:
The application in BUILD_DIR along with all changes made by the compile script will be packaged into a slug.