One important thing: if you want to optimize by avoiding a copy, you must use a const reference. A non-const reference must be used only when you really mean to modify the parameter inside the function.
And no, for sf::Event I don't think it makes sense to pass it by const reference, you're not going to optimize anything. People tend to abuse const references for anything that is more than a primitive type, I think it's wrong. A reference will involve an additional indirection everytime you access the variable, and also probably badly mess with cache, etc. So it's not just "copy or not copy".