It would mean on windows we'd need to link xinput, which I don't see being a problem except perhaps if using minGW, in which case we can just add a macro to disable it.
In terms of the API, I don't think there should be any changes. The implementation would be mostly the same (update the state every frame). Down the line we may want to consider a way for the user to check if a device is using xinput or not, but that would probably be part of a wider gamepad recognition feature