It is well-defined, yes, because "universal references" (mind the fact that this is a non-standard term) can resolve into rvalue references and therefore bind to temporaries, but you're not creating an "optional reference".
References must always be initialized and must always be bound to an object, they cannot be "bound or not bound" (which is my intuitive understanding of what you mean by "optional reference").
Here, you are simply binding that reference to a temporary. What you did is equivalent to the following:
template<typename T> void f(T&& t) { ... }
void f() { f(int()); }
If you meant to say the you are now able to create a function which accepts a reference and may be invoked without providing any argument - which is IMO a more correct way to put it - then this is true, but I wouldn't consider it a breaking discovery.
Even in C++03 you could do something similar, although for references to const
only:
template<typename T>
void f(T const& = T()) { ... }
Since C++11 introduced non-const
references which can bind to temporaries (rvalue references), a natural generalization follows, which is what your technique exploits.