Если вы можете отделить пользовательский интерфейс от логики, вы можете начать многоцелевой. Другое соображение - это время работы телефона (Silverlight 4?) И «песочница» телефона, дающая вам ограничения.
MVVM Light многоцелевой и с открытым исходным кодом, вы можете использовать это, чтобы посмотреть, как они справились с этим:
http://mvvmlight.codeplex.com/SourceControl/changeset/view/d546dc69fffd
Короче говоря, ваша идея "добавить как ссылку" в значительной степени является ее основой.
Другой вопрос, который нужно задать: подойдет ли приложение на обе платформы? Стиль использования от мобильного до метро - большое изменение. Люди ожидают, что вещи ведут себя определенным образом и выглядят определенным образом в метро. Если вы можете ограничить это пользовательским интерфейсом и использовать как можно больше логики, тогда все будет в порядке. Но наступит момент, когда делиться не стоит, его просто будет проще скопировать.
Извините за отсутствие подробностей в этом ответе, если честно, он сильно зависит от приложения. Лично я бы начал с отдельных приложений и рефакторинга по мере появления общностей, используя комбинацию связанных файлов кода и хэш-определений.
Милый трюк ... вы всегда можете сделать классы частичными и иметь частичный кодовый файл для каждого хеша:
MyBusinessClass.CF.cs
MyBusinessClass.Silverlight.cs