In my conlang, the proto-language had a CVR (R standing for a resonant) syllable structure and no voiced obstruents. Later, unstressed vowels were lost between voiceless obstruents (i.e. all obstruents). After this, obstruents were voiced when between two other voiced segments (/s/ became /r/, which was not present in the protolang), and all clusters with any voiced segments were split by an epenthetic vowel /a/.
The result is that the new language appears to be CVC, but only permitting voiceless obstruents to serve as codas, and only word-internally before other voiceless obstruents. Which made me wonder: does it make more sense to analyze this syllable structure as CCV? This doesn't end up working exactly (the protolang had uniform initial stress, preventing words from starting with clusters), but it feels like it makes more sense. So how should I analyze the syllable structure?