Exactly, looking at file sizes is not the only way of looking at it. <i> is quicker, and efficient if you think of efficient in terms of the quickest way of doing something, but having something done quick is not always the best. Sure, when hardware specs were low, having software do things in the quickest manner possible was key. But now that we have gotten by that limitation in terms of html, we have to turn to other needs such as accessibility and mobility. By seperating all the parts of the machine, instead of having it all mixed up in a black box, we can more clearly fix things and find the information we want.
Basically, all the arguments you can use for supporting object oriented design can also support the separation of HTML into XHTML, CSS, etc.