В актуальных правилах русской орфографии записано, что в названиях праздников с большой буквы пишется первое слово (в обязательном порядке) и некоторые другие слова (если этого требует традиция или другие правила). Насколько я понимаю тот параграф, под понятием "праздник" там подразумеваются не только общегосударственные, а любые. Все названия, которые в контексте воспринимаются как названия праздников. Например: если кто-то придумал "День любителя русской пунктуации", назвал это праздником, написал "День" с большой буквы, то ошибки он не допустил, в принципе.
_
С днём рождения.
Так рекомендовано писать во всех случаях, когда интересующее нас сочетание ("день рождения") не представляет собой название официального праздника. Кстати, не нужно путать название праздника с названием мероприятия. Это две немножко разные вещи. Праздник может быть государственным, городским, каким-то ещё, но он должен иметь чёткое название и статус праздничного (хотя бы для кого-то) дня. В противном случае, это просто мероприятие. И тогда оно будет писаться с большой буквы лишь тогда, если оно имеет некое мировое, государственное или международное значение.
Например: "С днём рождения моей подруги у меня связано много интересных воспоминаний". Пишем с маленькой.
С Днём рождения.
Если Вы желаете поздравить подругу и написать ей "С Днём рождения", имея в виду, что поздравляете с неким торжественным Днём, который ежегодно перерастает для неё и для её знакомых в праздник, то правил Вы грубо не нарушите. Напишите "Днём" с большой буквы, это лишний раз подчеркнёт торжественность происходящего, значение этого дня.
Но подчеркну, что это авторское видение события. Официально же рекомендуют писать "с днём рождения", если этот день не является чем-то слишком уж выделяющимся.
_
Помните, что день рождения - это всё-таки не Рождество Христово.