Quote from OP in another comment:
> I think a better way to phrase it is that we are writing a solver for a reasonable subset of inputs to an NP-hard problem.
Claiming to solve an np hard problem in polynomial time on all inputs would be either a fraud or a breakthrough. This is not such a claim. The algorithm is organized to perform well on many but not all inputs--its worst case is exponential time and it doesn't pretend to be otherwise. If you play chess against a chess engine like Stockfish, the exact same thing is going on, and in fact the algorithms involved are closely related to the one in the article.
I think a "puzzle" is a concrete instance of a more formal and abstract "problem".
So I don't think claiming to solve an instance (or many!) of a problem is inappropriate.