What is the design rationale behind allowing this

```
const Foo& a = function_returning_Foo_by_value();

```

but not this

```
Foo& a = function_returning_Foo_by_value();

```

?

What could possible go wrong in the second line (which would not already go wrong in the first line)?