rvalue support not only encompasses construction and assignment but also arithmetic operations. As it is now, when you perform arithmetic on sf::Vectors you create a crapton of temporaries causing the constructor to be called more times than you would expect.
Here is an authentic snippet of a gprof profile of SFGUI test:
% cumulative self self total
time seconds seconds calls s/call s/call name
35.62 7.32 7.32 6919 0.00 0.00 sfg::Renderer::RefreshVBO(sf::RenderTarget const&)
3.50 8.04 0.72 188042280 0.00 0.00 sf::Vector2<float>::Vector2(float, float)
3.11 8.68 0.64 132964266 0.00 0.00 std::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&)
As you can see, the sf::Vector2 constructor is the second most time consuming function that is called. RefreshVBO contains a lot of sf::Vector2 code that's why it also racks up a lot of time.
If you do something like:
sf::Vector2f a = sf::Vector2f( 1.f, 1.f ) + sf::Vector2f( 2.f, 2.f );
You end up with something like 3? constructions, whereas I assume this can be done with less if you use rvalue references appropriately. There are already many other linear algebra libraries that have rvalue support even on "simple" vectors that contain few POD fields.
And don't forget, sf::Vector isn't just restricted to containing floats. If for some reason some insane person wants to use sf::Vector3<sf::Image> then rvalue support just might make a difference
.