Конечно, в современном русском языке слово лебедь — мужского рода.
Но есть ряд причин, по которым возникают сомнения на этот счет.
Вопрос грамматической категории рода в русском языке — один из самых сложных. Помимо сложности алгоритма для определения рода в самых, казалось бы, обыкновенных случаях, существует еще и целый ряд особенностей: род может не быть мотивирован полом определяемого существительного (у мозоли, например, попросту нет пола); форма слова может не позволять определить пол называемого существа (как наш лебедь); есть ситуации, в которых род становится определенным или вообще может быть присвоен слову только в контексте (речь идет о существительных общего рода из ряда пьяница, молодец). Есть существительные мужского рода, называющие женщин (летчик, космонавт), а еще род существительного может меняться в процессе развития языковой системы (слово рояль раньше было женского рода).
Про русский грамматический род следует также знать, что существительные не изменяются, а распределяются по родам. Вы не можете поставить слово петух в форму женского рода (хотя можете пошутить, что тогда он будет курицей, но это не имеет отношения к грамматике).
Если с личными — обозначающими людей — одушевленными существительными почти всегда и все ясно (мы знаем, что человек совершенно точно либо мужчина, либо женщина, что очень помогает нам с определением рода), то с неличными существительными, обозначающими животных, и неодушевленными все намного сложнее.
Поскольку история рода как грамматической категории достойна отдельного собрания сочинений, можно упомянуть одну только птицу как класс, к которому относится интересующий нас лебедь, чтобы получить достаточную порцию информации для одного раза.
Например, для определения характера рода имеет значение даже то, дикая птица или домашняя. Для большинства домашних животных важен пол существа, но название существа может обозначать породу, и тогда характер рода будет формальным: это значит, что существительное любого рода может обозначать существо противопоставленного этому роду пола. Мы говорим отара овец, не подразумевая, что там нет баранов. Говорим она держит кур, среди которых могут быть и петухи, однако объединяющее всю группу животных слово — женского рода. В этом случае обозначается исключительно вид животного.
У диких животных характер рода формальный, по типу склонения. Ворон и ворона — не самец и самка, а разные птицы, а в культуре — разные символы. Однако у гуся и гусыни — лексико-грамматический характер рода, то есть пол существа нам важен. К слову, пола гусеницы мы не знаем, поэтому характер рода формальный. Гусеница может оказаться кем угодно, если мы наделим ее качествами того или иного пола, например, в детской сказке: красивая гусеница / мистер гусеница. Но даже если предполагаемый пол будет мужским, существительное все равно женского рода, и мистер гусеница не становится гусем (частая ошибка детей и иностранцев).
Еще одна группа с птицами и другими существами — несклоняемые существительные. Есть большой соблазн сказать, что колибри — она, а род у слова женский, потому что это птичка, но эта птичка может быть как самцом, так и самкой. Для несклоняемых неличных существительных, обозначающих животных, действует такой принцип: то, что конкретная колибри самка (красивая колибри прилетела), мы можем узнать только из контекста. Слово остается словом мужского рода в любом случае. Так уж вышло, что в языке царит патриархат: например, одушевленность и изменение по падежам при появлении соответствующих категорий коснулись мужчин гораздо раньше, чем женщин. Разумеется, развитие общества отражалось в языке и его категориях.
Кстати, как вы знаете, начальная форма существительного в русском языке — именительный падеж, единственное число и мужской род.
Итак, колибри по умолчанию он, и только в контексте вы можете подчеркнуть, что речь идет о самке.
И даже среди всех этих закономерностей слово лебедь стоит особняком.
Характер рода у этого слова формальный: вне зависимости от того, самец перед нами или самка, мы называем птицу лебедь, и это слово в современном русском языке — мужского рода.
Мы можем сказать лебедка, лебедушка, но это уже другое слово, и оно, конечно, женского рода. Оно не является формой слова лебедь и существует само по себе со своим родом.
Как и в случае с колибри, мы можем сказать «ко мне подплыла красивая лебедь». Так мы узнаем, что речь идет о самке, но род существительного не поменяется.
Это слово представляет интерес еще и потому, что сказка Пушкина о царе Салтане все время напоминает нам о женщине-лебеде. А точнее — по старой норме — лебеди. Одно дело, что царевна становится птицей (а царевна — женщина), но это не так уж и важно: царевна-гусеница, царевна-шимпанзе, царевна-мозоль — она могла бы перевоплотиться во что угодно, ведь это сказка. На род существительного это не могло повлиять и не могло заставить слово изменяться иначе по падежам, а в сказке именно это и происходит. Почему?
В славянской мифологии образ лебеди действительно был связан с девой (так что не Пушкин положил начало этой путанице), и конечно, с этим был связан род слова. Само слово лебедь было словом женского рода, и словоизменение у него было соответствующее — не лебедя, а лебеди. (Кстати, слово рояль прошло тот же путь.)
Именно по этой причине в контексте фольклорном, мифологическом, в речи стилизованной, народной, поэтической допускается употребление старого слова лебедь в женском роде. В контекстах «чистых», в современном языке по норме слово лебедь — мужского рода.