Enough is used when you've met or exceeded some requirement. Saying I don't have enough means the emphasis is on not meeting that requirement, lacking something that you need, being unable to successfully do something, etc. The point is that you need more.
Don't have many/much doesn't really mean the same thing, because you're not talking about meeting (or failing to meet) a requirement. Those words are more of a general opinion about whether something seems like a lot, or not much, in a particular scenario:
- it's not cold enough (a particular low temperature is required, and we haven't reached it - this implies a specific problem!)
- it's not very cold (a general opinion on how low the temperature seems - even if this might cause a specific problem, there's no context suggesting that)
As for your examples:
I think this would be fine if it were just I don't have many friends for a party, that would sound like "if I had a party, the number of friends I could invite wouldn't seem like very many". It might feel a little empty or quiet. Large sounds awkward because that implies a certain number of people to count as "large", and enough would work better because of that sense of "I don't have the number of friends I need to throw a large party".
Again, enough works better because it has that sense of "there's no point getting a haircut, because I would need more hair for it to be worthwhile". Much sort of implies you would get a haircut anyway, and you just wanted to talk about how little you'd actually be getting cut. I feel like that situation is much more unusual, but I think you could say it if it applied? It seems fine, just not something people would usually say!
Ten is completely fine here, you're being specific about the required number. With enough you're generally not being specific about what the requirement is exactly, just whether or not you've met it. Actually saying ten is the same thing, just more specific!