I know that all whose names were not found in the book of life are going to be thrown in the lake of fire (Rev. 20:15). Why then does it say later on that nothing unclean, and no one who practices abomination and lying, shall ever come into it (New Jerusalem), but only those whose names are written in the Lamb’s book of life. (Rev. 21:27)
I guess it seems like an obvious question, but here it almost indicated that there will be those who are unclean who exist outside the city, but they will never be able to enter. Is the lake of fire outside the New Jerusalem, or are these sinners who live outside of the city?
This is one of the proofs that Rev. 21 concerns the millennium, not eternity. We know there’ll be sinners on Earth during the Millennium because the believers who survive the Great Tribulation and help repopulate the Earth will still be in their natural states. Some percentage of the children they bear will not be saved, and they’re the ones being described in Rev. 21:27.
Part of the confusion comes from the fact that Rev. 20:7-15 clearly takes place after the end of the Millennium. What’s not so clear is that all of Rev. 21 and the first 6 verses of Rev. 22 describe life in the New Jerusalem and in Israel during the Millennium. Chronologically they really should follow Rev. 20:6. The reason John jumped ahead to the end in Rev. 20:7 was to finish his thoughts on the destiny of Satan and the unbelievers. Then in Rev. 21:1 he went back to describe the Millennium. We know this because Rev. 21:1 is a direct quote from Isaiah 65:17, and Rev. 22:1-6 is a summary of Ezekiel 47. Both these Old Testament passages describe the Millennium.
Also, the reason for Jesus to reign for 1000 years before eternity begins is so he can conquer all His enemies. The last enemy is death (1 Cor. 15:26-27). Sin causes death so as long as there are sinners we can’t be in eternity. Otherwise God’s entire plan would have failed.