I went in the opposite direction. I rote-memorized the table, and then discovered different ways to compose the numbers while playing around with them in my head later.
Of course, "multiply then add" is the only easy algorithm to use when the numbers are larger than the size of the table that you know, so most things beyond 10*10 (and some squares above that) are going to default back to that anyhow.