This may be reasonable or not, depending on what are you developing. But there's no one solution for everything.
Is it an app just for you? Exact versions are great.
Is it an app for someone else? You should probably allow security fix updates, so at least x.y.*.
Is it a library? Anything close to a specific version is a terrible idea. Just define a minimal supported version and maybe an upper limit on (x+1).0.0.
If I want to upgrade from 2.1.3 to 2.1.4 then I'll change that dependency and run the update.
The reason I do this if I have packages A, B and C all set to >=2.2 and A,B upgrade and something breaks, How do I know it if twas A or B.
Now throw in that packages get updated all the time and those packages have sub dependencies and it quickly can get out of hand.