Instead of sending the entire object embedded in the activity the secure way would be to only the URI instead. This is permitted by JSON-LD.
In the receiving side, if the object is untrusted (i.e. if it isn't signed or if it's from a separate authority from the parent object containing it) it should be thrown away and the id should be fetched from the remote instance directly (same as it would happen if it was a URI instead of an inline object). This is completely an oversight on Lemmy's implementation and not a protocol problem.
Yeah, that is a shortcoming of the protocol. But it's necessary in order to be secure until things improve (and given this is AP, that's gonna be a while. People seem to love bikeshedding in circles instead of doing actual work)