Yo hice eso varias veces.
Obviamente son dos instalaciones distintas, de hecho en algunos caso actualicé la versión de CI de uno y no del otro, lo que quiero decir es que el tema es flexible.
En mi caso, como es el mismo servidor lo que hice fue desde el backend usar includes/request_once para no repetir código, por ejemplo archivos de configuración, constantes, idiomas, helpers etc. De esta manera es más fácil mantener y no duplicar código.
Por ejemplo este es el código de un helper:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
// Funciones genéricos para el sitio web
require_once(RELATIVE_BASEPATH.'application/helpers/site_helper.php');
RELATIVE_BASEPATH es una constante que uso en el backend para saber dónde ir a buscar los archivos de la parte pública.
/*
| -------------------------------------------------------------------
| Ruta relativa a la web pública
| -------------------------------------------------------------------
*/
define('RELATIVE_BASEPATH', '../');
Este es config/aplication.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// app configuration
/*
|--------------------------------------------------------------------------
| INCLUIR LA CONFIGURACION DE LA WEB PUBLICA
|--------------------------------------------------------------------------
*/
require_once(RELATIVE_BASEPATH.'application/config/application.php');
Espero que sea útil! seguro hay otras maneras de hacerlo.