У меня GCC компилятор пишет именно о невозможности преобразования из myClass в myClass&, поэтому суть претензий не понятна была.
Но в студии такая функция работает нормально:
myClass& foo(myClass& obj) {
\\изменение obj
return obj;
}
foo( myClass() );
Для такого случая надо использовать исключительно первый вариант?