We only share code that's runtime agnostic – an API client, stateful hooks to wrap API calls + manage caching, an abstract cryptography API (the actual implementations for RN vs desktop/web live in separate packages), Typescript + ESLint configs.
We avoid sharing any UI-related code, for the reason you alluded to but also just because mobile + desktop interfaces tend to be different enough that it doesn't always make sense to share even if there weren't the platform differences to deal with.