Now that's what I love hearing... a person not originally from this field finding out that this CNC stuff isn't as easy as it looks! Good for you, now spread the word. (Like the guy who designs a 4 axis, 2 setup part and is furious with you for wanting anymore than $50 to make ONE)
As for your question, the answer is all of the above. Sorta. If you have the luxury of measuring the "box stock" (which I'm taking to mean raw material) for thickness, and it is consistent, you can program your second op accordingly, then touch off on the top of the stock. Or you could touch off your vice bed/table/sub plate/parallels and be much more accurate, while not having to worry about material thickness.
A third option for second ops is if you're using soft jaws, I will generally program my work offset for the upper left corner of the jaws as XYZ zero. That way you don't have to worry about material thickness AND it's much easier to get the X and Y offsets when dealing with odd shaped parts.
Bottom line... if it works, it's right.