I have been using AVR since last four years and doing the same (clearing flags by setting them). But, surely there should be a reason, why AVR designer kept it like that. Can someone please reveal the reality.

I recall a good thread on this many years ago, probably 10+. I couldn't find it in my searching. As I remember there was discussion on the reasoning behind it.

As with the OP, haven't thought much about it since--"just do it". Upon reflection, is it true that it only works if the entire I/O register is flag bits, or if >>only one<< flag bit in an I/O register? (like ADIF and SPIF) If, say, three flags and "other stuff", then working with the "other stuff" might clear the flag bits? And the I/O registers need to be low, so that when working with the "other stuff", e.g. ADSC can't be a RMW or ADIF would be cleared, that SBI/CBI is used? And then it still must be a modern AVR model, 'cause IIRC in old AVRs SBI/CBI >>was<< a RMW. Starting to make my head hurt, now...

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.