The problem isn't memory, it's the application code that's used to
reference rows. There are millions of lines of code in XL, of which a
substantial number depend on two-byte row references. Two bytes, or 16
bits, represents 2^16, or 65536 rows.
Changing that code is a monumental task: man-centuries of coding, and
especially, testing. A task which, to date, apparently hasn't been shown
to be worth doing. Of course, from MS's perspective,it's only worth
doing if (a) it results in enough additional sales to cover the cost
(very unlikely - how many new copies would your business buy, especially
if the change broke the file format that allows
XL97/98/00/01/02/v.X/03/04 versions to share files?), or (b) there's a
structural reason to do so (e.g., implementing a new platform requires a
complete rewrite anyway, and the change can be accommodated with
relatively little additional expense, which again, file/backwards
compatibility makes unlikely), or it's done as a very long-term
strategic move.
In addition to file compatibility, there's a huge code base of VBA
applications which, rightly or wrongly, are based on 65536 rows. MS
risks breaking those applications, and therefore losing sales, to
businesses that require those applications.
In addition, the vast majority of needs for more than 2^16 rows are for
databases, which are better handled in a database application.