No, I've had SQ upgrade me from J to P often in exchange for the differential.
The key is that the fare calculation must break out the sector being upgraded. If you are doing, for example:
YVRSFO UA /X SFOHKG SQ /O HKGSIN SQ, in full fare J, you will pay the YVRSIN fare. But if you want to upgrade only HKGSIN, the fare has to be broken up as YVRHKG + HKGSIN.
It's even worse if the transpac has been UA operated, because then the ticket will be UA stock--in which case it may not be possible for SQ to determine if you actually paid the face value of the ticket (SQ frequently rebate commissions, which are passed on to the client--these tickets cannot be upgraded without reference to the sales office which authorized the higher commission).