How do I relate two similar text fields between users and content with user as argument?
You need to make a View that lists nodes, containing a contextual filter that filters by SFID.  Do that, and what remains is the problem of how to pass the user's SFID value to the contextual filter.  There are many ways to do this, depending on how you're generating the user/%user/mynodes page. 

Panels / Page Manager approach

My go-to recommendation for this sort of thing is to use Panels / Page Manager to generate the user/%user/mynodes page, and embed your view there.  If you enable the Views Content module (bundled with CTools) you will have a new type of Views display available called "Content pane".  Build your view using this type of display.  In the view configuration when configuring this display there's an option for "Argument input".  You'll probably want to choose "input on pane config".  Then, when embedding the view in your page (using Page Manager) you'll be given the opportunity to plug in a token there from the ctools user context that represents the user's SFID.

Custom module alternative:

Since you said you can't use Panels, your best alternative is probably to create your own menu callback at user/%user/mynodes wherein you extract the SFID from the user object and return the view by calling views_embed_view().  

This is greatly simplified, but here's the gist of it:

function mymodule_menu() {
 $items['user/%user/mynodes'] = array(
  'page callback' =&gt; 'mymodule_user_nodes',
  'page arguments' =&gt; array(1),
 );
 return $items;
}

function mymodule_user_nodes($account) {
 return views_embed_view('viewname', 'displayname', array($account-&gt;field_sfid['und'][0]['value']));
}


Note: I haven't tested that code, it's just off the top of my head.  I may have forgotten something.  Don't forget to add things like an access callback since I presume you'll want to limit access to this page. 

Views Field View or Entity Views Attach (EVA) alternative

This is a little bit icky but should work.  Either of the modules I listed (Views Field View or Entity Views Attach) will work for this approach.  I'll specifically outline how to do this with Views Field View but you could adapt these methods to EVA if you want; it would be similar.

You will make 2 views: 


A view that lists users and accepts the user ID as a contextual filter.  So this view will always return only 1 single user (whatever user is passed in the URL).
The view that you've already likely created; the one that has a contextual filter that accepts a SFID value and lists nodes.


What we'll do is use view #1 to generate the page at user/%/mynodes, and view #2 will be embedded inside of view #1; view #2 will generate the actual list of nodes for us.

We'll assume you've created view #2 correctly already (it's basically what we've already discussed previously) and I'll focus on view #1. 


Create a view based on the users table
Path for the view should be user/%/mynodes 
Add a contextual filter to the view that filters on uid
Configure the view to output fields
Add the SFID field to the view, but check the "exclude from display" option so it's not actually displayed.  We add this to the view so that it's available as a substitution for our next step. 
If you've installed Views Field View then you'll have a new field available called Global: View.  Add this to your view.  This field has a few settings; you'll need to select the name and display of view #2, above, and enter [!field_sfid] (this is the substitution token we get from the field we added in step 5) into the Contextual filters option.


Now you need only visit user/%/mynodes with an appropriate uid in place of the % and it should work.