My daughter just turned 7 (in February) and she also has a crossbite. At her last visit to the dentist (day before she turned 7yo), he said she'll need a palate expander too and was going to give us some names of orthodontists we could choose from. Then he thought about it, and since she has only lost 2 baby teeth, with no other loose ones in sight, he said to wait it out and when we go back for her next cleaning in August he'll check her then and likely send us to the orthodontist at that time.
So while I don't have experience with them yet, 4yo seems early to me. My niece had one, but she was about 7yo when she got it, and my daughter will be at least 7.5yo, probably close to 8yo. BUT, my daughter was a very, very late teether, so consequently she is very slow to lose her baby teeth. If your son has lost some teeth, or has loose teeth, then maybe that's why he'll start younger.