Thank you guys for your feedback, and for defending your ideas so passionately. I really appreciate it, that's what helps me to make SFML better.
I'll try to summarize what I've found useful in this discussion.
1. Using a const reference makes really unclear what the function does with the object, and something must be done to prevent people from using it wrongly. I'll for sure improve the documentation a lot, and regarding this particular RenderTarget::SetView function, I'm thinking about handling views by value rather than by keeping references to user instances.
I'm not going to use pointers because of personnal design choices, but we all agree that it's not the only solution anyway.
2. To me, mutable members and const_cast were similar solutions to the problems I have in SFML, but apparently mutable members are still cleaner and more correct. I already replaced const_cast with them wherever it was obvious in SFML 2 (like in sf::View), but maybe I should use them everywhere, even if most of the members will become mutable (sf::Image, etc.).
3. This whole discussion made me think about something that could potentially be a huge improvement to the drawable classes in SFML, it has nothing to do with the actual subject of this topic but thanks
This was not meant to close the discussion, so if someone disagrees with what I just said, or still feels like something's really wrong in SFML, just go on :wink: