Smart contract’s binary code is visible to anyone once it’s deployed. (And it’s pretty simple to disassemble).
For most contracts they link actual source code to make inspection even easier - large part of trust in the system comes from the fact that contracts are inspectable.