I'm not sure I would say incorrect or impolite, but yes, your two solutions are both better, much more common and natural-sounding: He's from Spain; He's Spanish.
Regular forms that end in -an are still used: He's a Canadian/Venezuelan is also okay, though He's Canadian/Venezuelan and He's from Canada/Venezuela are more common.
But special noun forms, like Swede, Briton, Spaniard, Argentine (as opposed to the more modern Argentinian), etc., do tend to sound old-fashioned or dated, and are now not often used in the singular to refer to a particular person. You may still hear them used to refer to an abstract person: The average Briton drinks X cups of tea a day, or in the plural: The Swedes objected to the proposed treaty.
But also in the plural, the adjective is probably more common and more polite: The Swedish negotiators objected ... That's partly because modern English speakers are more sensitive to the concept that ethnicity or national origin is not a package of predetermined stereotypical traits, so it feels wrong to label people as members of groups as their primary identity, rather than individuals who happen to share that one characteristic.
Forms ending in -man/-woman are also dated, with the added problem that the masculine ones can no longer be used alone in the abstract in an inclusive sense, because it sounds sexist to modern ears. So instead of talking about Frenchmen in general, or the average Frenchman, you would talk about the French, or the average French taxpayer, citizen, bookbuyer, restaurant patron, whatever.