I don't believe any dog should be off-leash on a public road, no matter how good their recall and off-leash obedience is. Not just for the safety of the dog (they're not robots, after all, and there's always the tiny chance that something totally unexpected will happen and spook/lure them into the road at the wrong time), but also because the drivers have no idea how well trained your dog is. When I drive by an off-leash dog, I have to treat it like a hazard that could dart into the road at any minute, which means my attention is split more than necessary. The only exception to this, in my opinion, are working dogs who need to be off-leash to do their job.
That being said, you can absolutely do things to improve your recall. You mentioned putting the leash on when your dog comes back. Does this always happen? Because it's very common to accidentally teach a dog that a recall means that off-leash fun ends, so you essentially are punishing your dog for coming back to you. Another common mistake is to scold the dog when he finally does decide to come back. You might think you're scolding them for ignoring the recall, but dogs aren't very good at that kind of complex cause-and-effect reasoning, so your dog thinks it's being scolded for coming to you.
If you have been accidentally punishing your dog for recalling, it's a good idea to pick a new recall word. If you were using their name, maybe pick a word like "here" or "come", or use a whistle, or anything else clearly different from what you've been using before. Start indoors, with your dog next to you. Give the recall cue, then immediately reward your dog with something awesome. Repeat several times throughout the day, until the dog is immediately whipping his head around to look at you when he hears the cue. Then you can start doing it from a little further away, so the dog has to come towards you to get the reward. When he's really good and responsive to this, start adding a collar grab. This looks like recall cue, dog comes to you, touch neck, then give reward. Once your dog's good with this, start actually grabbing the collar briefly before giving the reward. This teaches that a recall and collar grab are super rewarding, not the end of a fun time, and when done right it should completely solve the issue of him playing keep-away when he realizes you're reaching for his collar.
Eventually you'll move this outdoors to a boring, fenced location, and practice practice practice until it's super reliable, before you can start practicing in more interesting off-leash locations with bigger distractions like wild animals, other dogs, and people. Start clipping on a leash when you do the collar grab, then immediately remove it and let the dog run off-leash again - this will keep the dog from learning that you're going to end the fun if you give him the recall cue with the leash in your hand. The idea is that the dog can no longer predict which recalls are just for super good rewards, and which are because you need to leash him up for real. So long as the 'super good reward' recalls happen way, way more often than the 'leash up, fun's over' recalls, most dogs will be willing to take the risk and come to you when they hear the cue.