Such change would definitely not take place in SFML 2.x since, as you mentioned, it breaks the API. But it can still be discussed for future versions like 3.0 and we welcome such discussion.
Now, personally I like the current API. To start with, I slightly disagree with you when you say «passing an index number to each joystick method seems very C-style» [where I understand that C-style is bad]. In
some situations free functions (what you call C-style) are actually not bad. And I think that's one of those situations.
Why? Well, even if such class would provide a
isConnected() function, you would typically assume that when you got a joystick object it is connected. Hence, you'll call
isButtonPressed(x) on it without checking if it's connected or not – you'll forget to do it maybe simply by mistake.
When you have a free function, you (or, at least, I) think differently about the parameters: I'm more careful about the value I give to the function and therefore would check if the joystick is connected more systematically.
But since it's mostly a matter of taste, feel free to disagree.