Okay, let me try to explain this in normal.
1)
NIPs are specifications (descriptions) of what some function should do. Like, there's a NIP for updating a follow list.
But specs are inherently buggy because they are just freely-written text. People try to correct and edit them, but it's sort of futile. One part doesn't match the other, one section conflicts with another, something gets deleted by accident or copy-pasted in incorrectly.