This is a philosophical question more than practical 
There are clearly two camps: "Autowire Everything" camp and "Don't Autowire Anything" camp. And I know very cool and clever people that belong to one or the other.
My take on it: "It depends".
I really like to use Autowire for Testing, it just makes sense, and makes testing so much easier.
I however dislike to "Autowire" components on the "business side of things". But even that depends. If there are more than 5, 6 people on a team, I, in most cases, would not use Autowiring: very easy to misuse, confuse, etc... But if it is a small team with people that you can fully rely on, @Autowire will save you some time.
On bigger projects 20+ people, there is almost no way you'll have 100% of people being solid developers: that is an "unfortunate truth". So removing unnecessary "magic" (Autowire) would be one way to reduce the confusion.
There are exceptional cases, of course, where Autowire can be extremely useful no matter how big/small the project is. For example: injecting a low level property to an abstract class without having clients to worry about it.
/Anatoly
Humans are stateful and mutable beings that have no problems processing many things concurrently and share state with others + they are usually "coupled"