My initial thoughts are actually use a polyurethane sealant like Sikaflex. They're much thicker than a normal latex caulk and much better at repelling water. Much less chance of shrinking and cracking. Takes paint, too, unlike silicone, but with almost the same or better water repellent capabilities.
Promo video, as you can see, way better than any latex caulk.
Another thing to consider that is sorta painting 101 but I don't hear talked about often here is using backer rod, as in, foam lengths of tubing anywhere from 1/4" to 3/4" of an inch or more. Ideally with caulking if you have any cracks over about 1/4" wide to deal with, you should be using backer rod first to plug up the gap, then put the sealant on top of the backer rod, not just shooting more and more caulking in. Because the deeper you go with just shooting more caulking in the more chance of it not curing properly or cracking/etc on you, though the polyurethane sealants are designed for huge joints/etc compared to latex caulks.