The [!] means a dump that is 100% identical to the data contained within an N64 cartridge. Any other dodgy tag (like [b3], [t2], [f1] etc.) means the rom has been altered in some way so that it is no longer identical. These altered roms are known as bad dumps. Bad dumps are not recommended for use with emulators as they may mess up at any point/not even work at all. So when you are "making the roms into [!]" you are fixing it.
Having (or using) just [!] roms with emulators is good practice, but does not ensure that games will work perfectly, since games usually have known issues with graphics plugins or the core itself that are not fixed by having a [!] rom.