I don't know the reasoning behind these numbers, but they're from the big N.
Auto joypad polling reads from $4016/4017 (well, from the controller port lines, not actually going to the address bus for it) sixteen times, once every ~256 clock cycles from the SNES CPU. Each read will barrel shift in one more bit of joypad state into $4218-421f.
If you attempt to read from $4016/$4017 yourself while auto joypad polling is enabled, it will most likely (depending on timing) throw off the gamepad's clocking of its own shift register, and the values in $4218-421f will be invalid. If you read from $4218-421f before the process completes, you will get an intermediate state of values.
There is of course a possibility of a conflict if both your code and the SNES auto joypad poller access the same resource at the same time, but it is so far and away detached from the PPU rendering process as to be utterly irrelevant to graphics output.
What usually happens is people don't understand this, their game logic goes into some weird direction based on their input polling code (note how horrifically Zelda 3 goes when you press up+down or left+right at the same time), and it gets blamed on something that is in fact a coding bug, which is what is ostensibly happening here.
I'm probably being a jerk about it like always, though. I get too defensive.
(aside: kevtris confirmed this stuff with a logic analyzer while working on the Super Nt.)
I was going to talk about the lack of people reading $4210 once in NMI to reset the latch
While we're at it, do not read $4210/4211 outside of NMI/IRQ!
Not directed at you koitsu, but anyone reading this.
Those are acknowledgement bits only. Reading $4210 outside of NMI to detect that an NMI has occurred, can result in the NMI being suppressed entirely, the bit never being set despite firing, or in cases where the bit can remain set even though you read it as set once already. The same for $4211 and IRQs.
A small number of games unintentionally rely on this behavior and so we have to very painfully emulate it.
I don't use it for the reason that I find it difficult to use.
bsnes / higan has been famously difficult since v074.
I tried to make bsnes v107 as easy to use as Snes9X. If you haven't tried it, you may like that version.
But certainly, you don't have to use them. It's my own fault for burning up all of the goodwill I gained from v001-v073.
If you do find a legitimate bug in bsnes though, my advance appreciation. I do want my emulator to be as perfect as I can possibly make it. I've put half of my life into this project, so I take this very seriously.