There are many different schools of parenting, from the gentle end right through to the more authoritarian. Everyone will have their own idea of how to best parent, and they're typically quite cynical about the opposite end of the parenting spectrum.
That's all fine. We all know our DC and do what we think is best. My two DC respond REALLY badly to raised voices, always have (both SEN and get really anxious). We don't ever have raised voices in this house because if we do, it's a fucking disaster all round. However, I have friends who are sterner with their DC and that works for them. Neither of us is wrong.
However, and this is the kicker, what you said is " I screamed my head off at him, told him he was making me miserable and that I hated spending time with him, no one would want to be his friend"
Aside from the fact of actually "screaming" at a 4 year old, such personal insults aren't ever acceptable. And your OP questions whether you should do this again because it worked. I find that really shocking. To lose your temper in such an awful way is one thing, but to be contemplating repeating such horrible words again is quite another.
Ignoring what you actually said, the thing is with shouting, yes, it may well be effective now as there's a shock value. But children get very quickly used to an adult who shouts, and it loses its impact. How are you going to manage your temper and your relationship with your DS when "screaming" at him doesn't have an effect any more?
This is why you need to actually parent, not just raise your voice. As he gets older he'll be less bothered about you yelling at him, he might even find it funny to wind you up.
I think you need to focus on coping techniques for you, this will help you stay calm when he's pushing your buttons. I'm not suggesting that you never get annoyed but you need to be in control of your temper and your emotions rather just screaming personal insults at a nursery-age child.