I think Game Freak made him a steel type because if he was just a fighting type, he'd be weak to flying and psychic types. But when you think about it, they also made him weak to even more types: fire, ground, and even fighting, his own type. When they did introduce the fairy type in generation 6, though, it evens out. Fairy isn't super effective on a fighting steel type, even though it would be with just a fighting type. I was kind of confused then, because fairy is good against fighting, but steel is good against fairy. And Lucario is fighting steel. I tested it on a link battle and my Gardevoir won against their Lucario. But I always feel sad beating a Lucario because he is one of my favorite Pokemon.