Well. Yes. It's supposed to.
Do you actually understand you told WP "Okay, now I'm blog 42, so everything I call is now relative to THAT blog ID"?
That's what it sounds like you're saying, so I'm confused why you're confused :)
I mean... I may really be missing something, but if
get_blog_details($blog_id) returns 42, then OF COURSE
wp_get_attachment_url is going to show that attachment link. It's supposed to.
The correct attachment URL for any post in Blog 42 is
Why would it not?
get_blog_details() and wp_get_attachment_ur() are independent functions and should be independent.
They are. But you'll notice you can't define blogID in the latter, right? So how do you think it gets that ID?
1) Where/HOW are you defining
2) Are you remembering to reset any switch_to_blog() calls when done?