Let's separate this to two questions,
First, code optimization vs readable code, I don't see how the second one more readable than the first one. For you maybe, but for people new to the project, they will sure ask why do you need two of the same loop?
Second, "I do not feel that the performance is hurt that bad", that's depends, if you have less than 100 products maybe (but still take performance hit, not noticeable though). But as your products grow, the second code will always take twice the time as the first one.