Setting keyframe interval to 0 actually means setting it to auto -- this makes the encoder use its own judgement based on when it thinks it needs to add an I frame to get the image quality back up after the string of P/B frames.
Having too far of a gap between I-frames poses a real issue, especially for streaming -- anyone coming in has to wait until the next I-frame to start getting a video feed, since you can't get a picture without a reference point (P-frames are predictive frames, so it's just differences between frames, and B-frames are helper frames that need the adjacent I-frames). This also applies to any time a viewer ends up buffering -- there's no way for the player to start back up again unless it has a proper frame to catch up on, which has to be an I-frame.
Take an extreme example. Let's say it's 2 minutes between I-frames -- that means if you're watching and have a slight hiccup in your connection, it's going to take upwards of 2 minutes before you can start viewing again. If the player is aggressive and tries to feed you an image without the reference I-frame, it's going to appear like a grey blurry mess because it's just showing you the raw P-frames changing a mid-gray plate.
So... yeah. Use twitch's recommended 2 second I-frame interval. Unless you're trying to do extreme bit-saving (like, having to compress <600kbps), then there's no reason to change this.