b) If everybody held onto their knowledge because it was valuable, I'd venture to say that you'd only have a fraction of the knowledge you have now - since there wouldn't be any resources for you to consume yourself
c) It disseminates your work, more people know what you're working on, and that means that when you make a claim regarding the value of your work, people will take you seriously. How am I supposed to judge the value of your work if you don't have a readily available body of work for me to cross-reference against.
d) If your pattern truly creates value, then others will start to use it in software you don't contribute to; which will mean more rapid progress that you can again benefit from.
Human knowledge acquisition is not meant to be solitary, so if you don't want to share; thats up to you. But you need to realise that sharing is always a game of give and take.