A perfect compromise is a decision that leaves everybody equally unhappy.
Your bike shop owner would clearly rather have gotten the full price for the light, but made the informed decision that a lower margin sale was better for him than a no sale. You would rather to have bought the light from your LBS for the internet/mailorder price, but made the informed decision that you would rather support your friendly LBS so long as the price penalty doesn't get too high. I struggle to make that kind of decision every time that I buy a new part. I kind of think that's the way it's going to be from now on.
If I already know exactly what I want, I can usually get it both faster and cheaper via internet. Things like Shimano parts, I don't even ask the local shops because I know they aren't going to be very competitive. Hmmm, quicker, cheaper and I didn't use their time or knowledge. That's a no brainer to me.
If I'm not sure exactly what I want and I use a shop employee's time and knowledge to help me make a decision, I feel that it's only sporting to give them the sale.
For lots of stuff, the price works out close to the same regardless of where I buy it. In those cases, I'll give the LBS eight days (one week plus an ordering/receiving day) to get it. If they can't provide service that's that timely, then I'll order it from somebody who can. I think that's more than fair, but the three shops closest to me all have a hard time meeting that time frame. I'm frequently more interested in how long it's going to take to get something than I am in the lowest possible cost.