What You Are Seeing?
If I have a package already installed and then I call:
choco install package --version <next version>
The before modify script doesn't get run, even though that seems to me like it should be an upgrade scenario. The script does get run if I call:
choco upgrade package --version <next version>
What is Expected?
IMHO, if the upgrade command can install a package that doesn't exist, then the install command should detect an upgrade scenario if you aren't installing side-by-side.
How Did You Get This To Happen? (Steps to Reproduce)
Detailed above