Previous the build would fail on macOS if you had an epsilon.elf file in
at the root of the project. Indeed, the %.elf -> %.bin rule would get
triggered, but this rule should only operate on generated (intermediate)
elf file.
Some platforms don't have direct executable formats. For instance, on
Android, there *is* an EXE format for a given ARCH, but .so does not
apply to ARCH-less builds.
And having default rules for %.so on ARCH-less Android would get in
the way when copying the shared obejcts for the APK.