With IOS, you will not detect non-Cisco SFP modules until you enter the hidden command
service unsupported-transceiver in configuration mode.
Note that this is a hidden command, so completion is not available while typing the command.
On this example, with a Cisco 3750 switch, you will notice the warning displayed by IOS when you activate this service:
Warning: When Cisco determines that a fault or defect can be traced to
the use of third-party transceivers installed by a customer or reseller,
then, at Cisco's discretion, Cisco may withhold support under warranty or
a Cisco support program. In the course of providing support for a Cisco
networking product Cisco may require that the end user install Cisco
transceivers if Cisco determines that removing third-party parts will
assist Cisco in diagnosing the cause of a support issue.
Answer to your first question: YES, SFP modules will be detected by the switch when plugged in, regardless of whether fiber is attached or not. But only after having entered this hidden command.