yes, it looks like that's not just a better solution, but the only one.
I've setup a test environment with 2 pairs of servers in different locations and checked different approaches. Unfortunately the replication needs to update replication status in syssubscriptions (and probably other) system table in the database under replication. And since it is in read-only mode while being the target of log shipping, it naturally fails.
I wonder why this status details wouldn't be stored (and updated) in Distribution database - after all most of replication info and data is there.
So I'm back to square one and have to move same data twice.