Потому что useModal (и как следствие, компонент, использующий этот хук) использует значение из контекста, и если это значение меняется, будут ререндериться все компоненты, которые зависят от значения контекста (то есть, даже те компоненты, которые работают с другими модалками, ибо контекст общий для всех).