Some other methods to fingerprint a device:
TCP Headers
SSL Cookies
language headers
fonts
Different browsers will render the same page in different ways which results in resources being loaded differently, you can detect this. They will also send different headers for different types of content, for example a picture could be byte served html generally isn't.
You can easily detect if its a mobile device and then ignore ip but instead track an ip range.
There are lots more ways to track a device online without cookies or IP, its fairly easy. The devices are often connected by sharing a login or an ip if both are on your wifi. Once the connection is made between devices its never forgotten.