In "pu'i" there is a potentiality which at some point becomes realized. With just "pu'i" alone, we can't say when it becomes realized; an external PU cmavo is needed to nail that down. So "can and has" is really the translation for capu'i rather than pu'i by itself. Similarly, pupu'i would be "could and did", and bapu'i would be "can and will".
capu'i == caca'a pupu'i == puca'a bapu'i == baca'a pu'i == ca'a