Minor plot hole: Leonard tracks 'John G's'; people who he tracks down using various clues, but invariably fit the name 'John G' . But the drug dealer he kills is named Jimmy G. Even if we accept that he goes on to kill people who are named derivatives of John, we can accept Johnny, or maybe even Jo, but Jimmy is a stretch.
Unaddressed Issue: Leonard kills the drug dealer, Jimmy, and then wears his clothes. He plans to wear his clothes even before he kills him (as he asks him to remove his clothes so that he doesn't get blood on them). There is no conceivable reason for the character to do that. Why should he take his clothes? Taking Jimmy's clothes and car is what put Leonard into more trouble with Natalie and Doug. But the character doesn't have any logic for this action.