Swift solves the "auto" issue pretty nicely - with the help of the IDE:
let x = someFunction()
Alt-click on x and it shows the type.
Otherwise, as you say, the code becomes very confusing and I abstain from auto except in cases where the type is clearly obvious.