Link field type displaying '&' as '&amp;'
Keep in mind l() passes the text through check_plain which escapes the HTML characters for display.

So, there's no need to double escape the link with another check_plain later.

Pass the raw text, including the single "&amp;" through as the link text and output it as such, that way it should be fine.