Now that I'm an experienced crafter, it doesn't happen to me too often, but there have been plenty of times when I've bought mats on the market board only to discover that they were priced WAY higher than an NPC vendor that I've visited before. Granted, I only have myself to blame for not being careful, but it's unrealistic to expect someone to fully memorize the inventories of each vendor they've encountered throughout the game. Also, I doubt the developers want to defend people who're just buying from an NPC, running over to their retainer, and waiting for the stack to sell to reap their profits off of forgetful players.
The solution would be fairly simple and easy to implement; just list the price and location of the last vendor you visited who sold this item. Also, if the devs are in a particularly good mood, they could even go so far as to do the same in the recipe book and items in your inventory.