Then we can ignore flaws of Selenium-based PageObject pattern implementations and consider it `the right way` since there is no way (currently) to maintain a separate window to match each used PageObject instance (or we can use popups as a workaround).

To prevent this problem we need to somehow enforce `one PageObject instance at a time` rule to prevent known flaws. Ideal way would be to throw an exception if an operation on PageObject instance, that doesn't match currently opened page is performed. Since base of all operations include element location, then we can match url at which page was originally opened with current one in the browser and throw an Exception.