With routing done by controller name (unless route set for each controller/action), I see the only benefit of using the ApiVersion attribute in having versioned APIs use the same controller name but in separate namespaces.
Otherwise the proper use that I have found is:
[ApiVersion("2.0"]
[RoutePrefix("api/v{version:apiVersion}/test")]
I do not see any efficiency or productiviy gain here when this must be applied across the board, there is no difference in dropping the package and simply using this:
[RoutePrefix("api/v2.0/test")]
I can only assume that I am missing something obvious here.