isolatedModules tells TypeScript to only accept code that is safe to compile one file at a time, which is what esbuild, SWC, Babel, and Vite all do. It is required for correctness under those tools and is implied by verbatimModuleSyntax.
The rule people hit first is re-exports. export { Foo } from './types' fails with error TS1205: Re-exporting a type when 'isolatedModules' is enabled requires using 'export type', because a single-file transpiler cannot know that Foo is a type and must be dropped. Write export type { Foo } from './types' instead.
The second is const enum. A single-file transpiler cannot inline members it has not seen, so const enums declared in a .d.ts and used across files are unsupported. TypeScript 5.0 made ambient const enums an error under isolatedModules. Convert them to regular enums or to a frozen const object. Both errors are compile-time only, which is why they can lurk in a codebase that only ever ran through a bundler without a type check step.