Whether you are disabling the behaviours, which isn't possible with these ones, or using 3 different bullets, seems like about the same amount of code. i.e. not much
Not really, if I use 3 different bullets or 3 different walls then there is a fair amount of extra work involved, including managing all of the assets and making sure all 3 get changed anytime I make one. It would be so much easier make a cleaner program if there was a wall behavior similar to platform where I could make easy changes to the settings on the fly.