Limiting in what way? It's just how you access random memory? It's nothing more than a memory address. How would you access memory otherwise without an address? Would you do it by tags? You'd need offsets in those tags, and there you get pointers again. Stop being so stuck up about it and realize that this is how machines really work.