It takes extra work to have a package satisfy CRAN's standard, and it might not get accepted. Also typically a package author wants to give his package a decent test run on github, have some feedback, solve the main bugs, be sure about the interface, document its function well etc... Breaking changes are less "forgiveable" when the package has been released on CRAN. You can open an issue and ask the author why the package isn't on CRAN, maybe he just thinks there's no demand.