Mutually recursive functions trigger false-positive `Error: n(0) can raise an unlisted exception: Exception`
### Nim Version

```
Nim Compiler Version 1.6.21 [Linux: amd64]
Compiled at 2025-03-10
Copyright (c) 2006-2023 by Andreas Rumpf

git hash: ec324ad0736c3e0cfa26b64d6631b15693633a6f
active boot switches: -d:release
```

```
Nim Compiler Version 2.0.15 [Linux: amd64]
Compiled at 2025-03-10
Copyright (c) 2006-2023 by Andreas Rumpf

git hash: 41637db18f6a82df4a92f2e00a780e5815d17028
active boot switches: -d:release
```

```
Nim Compiler Version 2.2.3 [Linux: amd64]
Compiled at 2025-03-10
Copyright (c) 2006-2025 by Andreas Rumpf

git hash: 9cf0d07b9e1e21ecbee8796bda7d3cedb9196dc9
active boot switches: -d:release
```

```
Nim Compiler Version 2.3.1 [Linux: amd64]
Compiled at 2025-03-10
Copyright (c) 2006-2025 by Andreas Rumpf

git hash: f8294ce06e61752d15624e0422c5296292ef5467
active boot switches: -d:release
```

### Description

```nim
proc n(_: int)

proc s(_: int) {.raises: [CatchableError].} =
  if false: n(0)

proc n(_: int) = s(0)
```

### Current Output

```text
..........................................................
/tmp/y.nim(3, 26) template/generic instantiation from here
/tmp/y.nim(4, 14) Error: n(0) can raise an unlisted exception: Exception
```

### Expected Output

```text
/tmp/y.nim(3, 27) Hint: 's' cannot raise 'CatchableError' [XCannotRaiseY]
```

### Known Workarounds

_No response_

### Additional Information

Related to but distinct from
- https://github.com/nim-lang/Nim/issues/24765