"Son" as a form of address is rarely used in North America.
"Sonny" as a regular greeting between family members: weird, unless it is a nickname, maybe "sonny boy,...."
Most parents refer to their children by name or nickname. "kiddo" and "buddy" are also used a lot for boys.
I overheard a father address his boy as "son" the other day, and it made me stop and look at them (it sounded old-fashioned and formal)