I ran into this problem as well. So, now, as standard practice, when I set up forwarding between GMail accounts, I add a single filter to the account being forwarded:
Matches: -96f0f0036730a7d970a678e8f933e8b7
Do this: Never send it to Spam
The string is just a random hex string, the minus (-) tells it to match all messages that do not contain this string. No message should ever contain it, so no message should ever be sent to spam in the original account. Once it gets to the end account, GMail will still filter it and put it in Spam if it is spam.
Unfortunately, you can't use "in:", "is:", "label:", or "has:star" in filters. Filters are applied before these things are determined. If you try to, you get the following message from GMail:
Filter searches containing "label:", "in:", "is:", or stars criteria (i.e. "has:yellow-star") are not recommended as they will never match incoming mail. Do you still wish to continue to the next step?
This works because this filter will match every mail, not just the mails that have the spam label. In the end it does what you wanted but the error is still right.
I specifically tested for this when consolidating various Gmail addresses behind an Apps account, and my fix was similar: a match on * seems to include spam.
It's slightly bizarre that the email forwarding you can configure in settings would not skip all spam checks, and not even indicate as much.
I did this as well, and it has been working great for me for a few years. A month ago I noticed by chance that it had stopped forwarding 12 hours earlier for no apparent reason. Deleting the rule and recreating it got it working, but it got me thinking of doing a more robust solution.