Вообще, если вы используете Application Cache, то юзать base64 действительно нет необходимости. Это как спорить добавить 1 или 2 л.с. в движок на 500 лошадей.
При этом, получая неудобство в ситуациях со спрайтами на несколько разных элементов.
Когда используется Application Cache, браузер запрашивает сначала только манифест файл и, если он изменён, начинает отправлять запросы if-modified-since по каждому файлу.
Теперь посчитаем: допустим у вас картинки/иконки по 20КБ * 10 шт. = 200КБ
В base64 размер увеличится в 1.37 = 274КБ + вес остального CSS.
Т.е. при изменении 1 файла, придётся заново загружать 274КБ, минимум.
Теперь что будет, если просто кэшировать картинки, оверхед на HTTP-запрос (заголовки) — 0.15-0.3 КБ,
итого 10*0.3 = 3КБ + 20КБ новый файл = 23КБ. Но тут оверхед на сеть (keep-alive) 1*DNS Lookup + 1*Connect + 10*Send/Receive.
— Хотя мне, например, нравится этот финт с уменьшением кол-ва запросов — в общем, надо реально исходить из задач — где-то это уместо, а где-то сродне экономии на спичках.
en.wikipedia.org/wiki/Data_URI_scheme#Advantages