Rivers have their own pops, as do caverns and the magma sea, but I'm not aware of any structures for cavern lakes specifically, although they ought to exist in one form of another, since lakes can get depleted independently of each other.
I haven't tried to correlate world.populations contents against rivers, but it would make sense to incorporate it there. The note about the fishing code is an interesting clue for further investigations.
Edit:
Tried a random tropical river embark, and found that yes, river creatures are included in the list as belonging to the river "feature". Furthermore, I found that the lungfish I see are tagged as Vermin_Grounder, but not Vermin_Fish, and the same goes for the Guppy that's supposed to be there (which makes sense given their size), while mussels are Vermin_Fish, initially undiscovered (and unlisted by "region-pops list", but discovered (and listed) once some had been caught. Pond Turtles are listed by region-pops, but I doubt I have any at embark, as all the pools are dried out.
Another tropical embark, this time a lake: The biome for the lake lists mussels, but world.populations only has a single entry for mussels for the embark tile, and that's for the river. There's a bunch of aquatic vermin in the lake, but none defined as Vermin_Fish (axolotl, Clown Loach, Banded Knifefish, and others I haven't bothered to identify).
OK, something that's good news: I hacked the race entry for FISH_KNIFEFISH_BANDED for the lake and world tile (there's one for the river as well) to be 514 instead (Pond Turtle), and I've seen a couple of pond turtles in the lake. It took a season for the 0 fishing zone tile to reset and some more time for the fisherdorf to get fishing, but I saw a pile of pond turtles caught. Thus, it seems replacement hacking works with vermin fish.
Thus, two issues seen:
- Mussels didn't appear as a general entry, and so didn't appear in the lake as they should.
- Most fish vermin I've seen are not classified as Vermin_Fish, and so, presumably, can't be caught by fishing.
Edit2: Checking the creature flags, there is only one Vermin_Fish possible for the three tropical pool biomes: Pond Turtle, and one for the three tropical lake biomes: Mussel, with tropical rivers also supporting Mussels only.
Edit3: Embarked in random tropical area with no pools and no vermin_fish except mussels in a river somewhere else. Replaced Mosquito with Pond Turtle in populations (leaving the now incorrect reference back to world pop unchanged), and dug down, creating an artificial pond in a light aquifer, and saw a pond turtle there with 1/7 water depth at most in the "pond".
Edit 4:
Here's a list of all Vermin_Fish with their temperature zones and habitats
CUTTLEFISH Temperature: Arctic Temperate Tropical, Habitat: Ocean
NAUTILUS Temperature: Arctic Temperate Tropical, Habitat: Ocean
POND_TURTLE Temperature: Temperate Tropical, Habitat: Pool
MUSSEL Temperature: Arctic Temperate Tropical, Habitat: Ocean Lake River
OYSTER Temperature: Arctic Temperate Tropical, Habitat: Ocean
FISH_SALMON Temperature: Temperate, Habitat: Ocean River
FISH_CLOWNFISH Temperature: Tropical, Habitat: Ocean
FISH_HAGFISH Temperature: Arctic Temperate, Habitat: Ocean
FISH_LAMPREY_BROOK Temperature: Temperate, Habitat: Ocean River
FISH_RAY_BAT Temperature: Temperate Tropical, Habitat: Ocean
FISH_RAY_THORNBACK Temperature: Temperate Tropical, Habitat: Ocean
FISH_RATFISH_SPOTTED Temperature: Temperate, Habitat: Ocean
FISH_HERRING Temperature: Arctic Temperate, Habitat: Ocean
FISH_SHAD Temperature: Arctic Temperate, Habitat: Ocean River
FISH_ANCHOVY Temperature: Temperate, Habitat: Ocean
FISH_TROUT_STEELHEAD Temperature: Arctic Temperate, Habitat: Ocean River
FISH_HAKE Temperature: Arctic Temperate, Habitat: Ocean
FISH_SOLE Temperature: Arctic Temperate, Habitat: Ocean
FISH_FLOUNDER Temperature: Temperate, Habitat: Ocean
FISH_MACKEREL Temperature: Arctic Temperate, Habitat: Ocean
SQUID Temperature: Arctic Temperate Tropical, Habitat: Ocean
FISH_BULLHEAD_BROWN Temperature: Temperate, Habitat: Lake
FISH_BULLHEAD_YELLOW Temperature: Temperate, Habitat: Lake
FISH_BULLHEAD_BLACK Temperature: Temperate, Habitat: Lake
FISH_CHAR Temperature: Temperate, Habitat: Lake River
FISH_TROUT_RAINBOW Temperature: Temperate, Habitat: Lake River
FISH_PERCH Temperature: Temperate, Habitat: Lake River
FISH_CAVE Temperature:, Habitat: Subterranean
LOBSTER_CAVE Temperature:, Habitat: Subterranean
So, the only thing you can get in pools is pond turtles (apart from possible river spill overs), and the only thing you can get in tropical lakes and rivers is mussels (as stated above). Temperate biomes have some options for lakes and rivers, and all the oceans temperatures have multiple options as well. Cavern lakes have two options.