I have a prospective clients who would like me to take over their site currently on Joomla and using CiviCRM I prefer to "hand code" my sites. How easy is it to integrate existing CiviCRM into such a site?
You mean with your own CMS? you will mostly have to deal with the authentication and permission system. look at what is done in civi for WP, J+, Drupal to give you a sense of the scope. I personally would not invest this time for no obvious value, but I would not either "hand code" my site, so YMMV ;)
I wouldn't say that it is easy, but it might be possible. You could even look at something like a multi-site setup (https://wiki.civicrm.org/confluence/display/CRMDOC/Multi+Site+Installation) for some ideas. That said, I don't know that CiviCRM can run without a CMS of some sort. Permissions have to be handled somehow. Normally the CMS also handles the routing, but that I think could be dealt with.
Migrating the content from CiviCRM isn't usually too difficult, if you have a proper setup and not too many customizations.
You can still do a lot of customization and hand coding with Joomla, such as if you wanted to create your own template or extensions. I use a plugin, Sourcerer to use various kinds of code in Joomla articles if I don't want to have to start coding up a full extension/component. I use Chronoforms to create pretty forms to interact with my CiviCRM install.
I'll join the chorus from Xavier and recommend against hand-coding a CMS. You might be able to authenticate via the client's Google Domain (if they use Google) instead and use some light weight iframes to achieve some acceptable results.
You should contact Nicholas Ganivet from Cividesk about his code around CMS independent CiviCRM (which used to be its own branch.)