Some people are just idiots and this will happen. I take it as my responsibility to protect my dogs at all times like you do.
Unfortunately you have to try to suss out the situation before it gets to the stage of the dogs actually meeting . I am aware that this is not always easy. Watch approaching dogs or dogs that are behind you body language carefully.
I also ask people to recall their dogs but would have done it when they were further away. I yell in a happy voice and then just keep on marching away from the situation. I rarely get abuse as I am legging it out of the way
.
Flapping your arms around and trying to send the dogs away does tend to have the opposite effect as it can excite the dogs.
I also teach a lets go to my dogs which means change direction and go, if they can do this quickly and enjoy it as a game you have more chance of getting away from the other dogs.
With small dogs there is an old fashioned view that you should not pick them up but this is rubbish. It is a good plan to teach your small dog a signal if they want to be picked up. Usually to touch or stand on your feet. Then scope them up and move away. This will not make them more vary of dogs, or more nervous. It will give them confidence that you will always be watching their back.
Your dog looks to you for support and protection the more we can give this the more these events can not damage our dogs. I also get a degree of positivity out of meeing idiots in that my dogs again can see how I am there for them.
Sorry it runined your walk today though.
No point in reporting to the police they will do nothing. You can report to dog warden if you have one - they may speak to the owners but highly unlikely that anything will come of it.
I have a lets go and will march off in another direction if at all unsure of the other dogs.