With passages such as John 3:16, it's easy to see why people are reluctant to give serious consideration to the doctrines of election and predestination. It is best, therefore, to begin with two things agreed upon by all Christians:
1) The Bible is the unfolding drama of man's redemption to God,
2) The Gospel is the "good news" that this redemption was for both Jew and Gentile.
Now, with just those two cornerstones of the Christian faith firmly in mind, consider again the exchange between Jesus and Nicodemus. Remember that Jesus came with the "good news," the gospel, and he was speaking to a "...ruler of the Jews." Try to put yourself in the place of Nicodemus and imagine being told that "...God so loved the world...that whoever believes...." The immediate impact of that statement would be that redemption was no longer exclusive to Jews, but that Gentiles were also included. I.E., "whoever" does not mean "each and every individual," but rather that redemption was now for "whoever," Jew AND Gentile.
This type of language and usage is found throughout the Bible. And, for what it's worth, it's called a "synecdoche," which means merely "a figure of speech by which a part is put for the whole, or the whole for the part." Quick example of how we "all" do this: You've just come home from church and someone asks, "How was church today?" You might say something like, "It was great. Everybody was there." You mean, of course, that there were "lots" of people there, but certainly not each and every person in the world.
Romans 2:10 is just one example of this usage: "...to every man...," then, as if by way of explanation, "...to the Jew first and also to the Greek...."
Again, in Romans 3:9, and following, Paul is making reference to the Old Testament scriptures. "As it is written, 'There is none righteous...There is none who understands...," and so forth. In verse 9, he prefaces his quotation with "that both Jews and Greeks are all under sin;....":
Last example: Revelation 13:16--"He causes 'all'...to be given a mark...," but the 'all' means "...the small and the great, and the rich and the poor...," etc., not "each and every."
It's important to keep this usage in mind. If not, it's easy to find oneself defending one passage, or text, as "literal," but insisting another is not. For example, in Revelations, one passage talks about "all" who refuse the mark of the beast are put to death (Rev. 13:15), and subsequently "...the rest were killed..." who DO accept the mark are killed at the Second Coming (Rev. 19:20-21). With just two passages, the notion of anyone being left, alive, to enter a literal Millenium, is gone.