Semi-official function my a**. I spent 6 years in the Navy. The only official function is when the Commanding Officer in front of the company gives you your certificate of promotion. There is no such thing as a "semi-official" promotion party. Nobody is required to host a party. And in 6 years I had NEVER attended a promotion party in uniform. You were on your own time, and were entitled to have any type of party you wished, so long as did not reflect badly on the military.
Support of DOMA does NOT reflect badly on the military. The top brass' pettiness and discrimination is what reflects badly.