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:
user#conf t
user(config)#service unsupported-transceiver
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.