The last 2 is actually an option in borland compiler, open up your project file click options -> compiler -> Code generation and take out the "X" for both Word Alignment and Treat enums as Ints.
There's a file called version.h that has few lines yet they have a serious role in the code, if you open it you'll see that define SPEAR is commented out, this means that the compiler basically ignores everything that is located between an #ifdef SPEAR - #endif segment. For instance in wl_act2:
SD_PlaySound(MUTTISND); // JAB
In here the #ifndef means if SPEAR is not defined because it's commented out or something, compile these lines for the death sounds of Wolf3D bosses, but because there is an #else which means if SPEAR is actually defined, ignore everything before the #else and compile stuff after the #else, that's how you get the Spear of Destiny stuff, the code is filled with these ifdefs, they're all around and sometimes it can be a mess. It's like if you enable this you get this but if you disable it you'll get that instead. However there's many places in the code where the ifdef spear is missing like in WL_ACT1.
bo_spear and bo_25clip are SoD exclusive pickups but because there is no ifdef to separate Spear bonuses from Wolf3D and they still appear in Wolf3D in a way and they're eating up some memory for no reason. In wl_def they're also not separated in the stat_t typedef enum, just like the enemies below a bit.