Did the #2 option today on an 11g database (just to remind me that things are different in 11g).
The simple way of getting OWB to use a dblink is to create your own connector (you may have to delete the one OWB creates by default when creating a mapping!) and specify a dblink on it.
My dblink is created as orcl@tgt_to_hr. It is important to name the connector the same as the dblink without using the servicename entry. So my connector was named TGT_TO_HR.
Once the link is in the db, and you are creating the connector, place the link name in the Details section. Make sure to use Browse... at least you are sure you have the right link name.
Once you have done this, the generated code will show the dblink being used and uses the schema name (as we saw earlier). Deploying the code will now use the precreated dblink.