I'm virtually certain you'll get an error if the linked server isn't there.
You could use dynamic SQL, which will only be compiled if/when it's run.
As to recompiles, SQL will not arbitrarily recompile any procedure at a given point in time, only if/when the proc is run.
SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.