I think it works. I'm of the opinion that anything can be a nn if you want it to be. I mean, so many of the nn for other names have little to do with the name itself. Ex: Richard/***, Robert/Bob, Elizabeth/Betty/Betsy.
If you want to have a Charles and call him Casey, do it.
Fwiw, our son is Linus and Louie is a nn we use occasionally for him. Not even derived from his first name, but because of a connection with our last name. So yeah. Nicknames are fair game, IMO.