I think 中国人 only refers to people having Chinese nationality while 华人 can be referred to any Chinese-descent people.
If one person is China-born and has Chinese nationality, should I always use 中国人? Is 华人 less common, or in the worst case, rude?
You're correct - 中国人 is specific for nationality with People's Republic of China.
华人 can refer to anyone from China / Taiwan / Hong Kong / Macau / etc.
In situation where nationality matters, one can use 中国人 for China-born + Chinese nationality.
EDIT: I've a few suggestions on the above line; People from the "华人" group can be refer to as 中国人 too. The line above suggest that, say when you're going through customs (where nationality matters), 中国人 = Chinese nationality. There's no contradiction arise.
华人 is usually used while identifying group of people (mentioned above) when they're in a foreign country. It's not rude at all.