I'm familiar with "steamer clams", but not "clam steamers".
In "shrimp fried rice", "shrimp" is a noun adjunct [1], which is when you use a noun as an adjective.
The charming ambiguity comes from it being unclear whether "shrimp" is an adjunct noun modifying "fried rice" ("shrimp fried-rice") or modifying the past participle verb "fried" ("shrimp-fried rice").
I thought the charming ambiguity came from "fried" either acting as an adjective or as a verb. These aren't just any shrimp, they're chef shrimp, and they've prepared some delicious fried rice for us. Isn't that incredible? Shrimp fried rice.
Right. It's a noun phrase either way. The question is whether it is rice that were fried by shrimp ("shrimp-fried rice") or fried rice containing shrimp ("shrimp fried-rice").
Yeah, they're usually just called "steamers". I put clam in front of them to disambiguate. But it's always bugged me. They're not steaming anything! They're getting steamed.