So far, I haven't seen any Pokémon with below CP 10. Is it even possible for this to occur (it doesn't matter whether the Pokémon is hatched, found, or evolved)?
No, according to the following formula there is no way to get below 10 CP
CP = MAX(10, FLOOR(Stamina0.5 * Attack * Def0.5 / 10))
Easily explained the formula calculates the current CP based on the Pokémon's stats and if it's higher than 10 it'll be the CP value or if it's below 10 it will set the CP to 10.
That's what the part
CP = max(10,value) does. The higher one wins.
Note: This is not to be confused with their motivation in gyms, where their CP will decrease over time. That effect is only temporary and not their real CP.