I can see exactly why that's the case just looking at the code.
else if (!stricmp(NOX("beam"), weapon_strings[i]))
{
weaponp->wi_flags |= WIF_BEAM;
// IMPORTANT: beams pierce shields by default :rolleyes: :p - Goober5000
weaponp->wi_flags2 |= WIF2_PIERCE_SHIELDS;
}
......
else if (!stricmp(NOX("pierce shields"), weapon_strings[i]))
weaponp->wi_flags2 |= WIF2_PIERCE_SHIELDS;
else if (!stricmp(NOX("no pierce shields"), weapon_strings[i])) // only for beams
weaponp->wi_flags2 &= ~WIF2_PIERCE_SHIELDS;
In simple terms, the beam flag resets the pierce shields flag ignoring whatever was set before. Theoretically you could just swap the internal logic around and make the WIF2_PIERCE_SHIELDS flag into WIF2_DON'T_PIERCE_SHIELDS and then remove the line after Goober's comment but the code is probably peppered with assumptions that beams do pierce by default and you'd probably screw up a bunch of stuff.
Which may mean that simply putting a note in the wiki is the simplest solution.