Попробуй символические ссылки, если на линуксе сидишь. Делаешь symlink на общие скрипты и забываешь про пути. У меня так было - файл один, а ссылки разбросаны по папкам. Только при деплое помни, что не все хостинги их поддерживают. Зато локально кайф - поправил в одном месте, везде обновилось.
Можно создать общую папку /assets/js/ в корне и ссылаться на неё из обеих версий. У меня так было - мобилка подтягивала скрипты через ../assets/js/script.js, а десктоп напрямую assets/js/script.js. Только проверь, что сервер правильно отдает файлы по этим путям - иногда CORS глючит при сложной структуре.
Твой подход с относительными путями работает отлично и на производительность не влияет. Делал так в нескольких проектах - выносил общие скрипты в shared/ или common/ и подключал в обеих версиях. Кеширование работает нормально, браузер грузит файл один раз. Только следи, чтобы пути не сломались при изменении структуры папок. Еще можешь глянуть на webpack - он автоматически оптимизирует общий код.
Попробуй Webpack или Gulp - они автоматически соберут общие файлы в один бандл для обеих версий. Настроишь раз и всё, никакого дублирования. Какие скрипты у тебя повторяются?
Зачем вам две версии? Адаптивная верстка справляется с этим намного проще. Медиа-запросы в CSS делают так, что один код работает везде. Не лучше ли перейти на responsive design? Зачем мучиться с двумя версиями?