I agree: the rules don't prohibit you from playing cards simply because it will have no effect. Online or app versions that prevent you from doing so are programmed incorrectly.
As you suggest, there is no specific rule that says this, but following the wording of the specific card should guide you here.
Perhaps the most illustrative examples are Resource Monopoly and Trade Monopoly. Clearly, if you haven't paid attention, it is easy to choose a resource or commodity that no opponent has in their hand. If so, you don't get to choose something else, you just get zero cards.
Other simple examples:
- Mining and Irrigation: 2x0 is 0, so you'd collect zero cards.
- Saboteur: If you have the most victory points, nobody has to discard cards. (My iPad app gets this one wrong)
Note that the game state might prevent you from playing some cards based on the situation:
- Master Merchant starts out: "Select an opponent who has more victory points than you." Maybe I'm reading too much from MTG rules, but my interpretation is that you cannot play this card if there are no opponents with more victory points.
- In contrast, Wedding says "Each player who has more victory points than you must give you...". If you play the card, and the number of matching players is zero, then you get zero resources, but you're not prevented from playing the card.
Other progress cards are a little less clear:
- Can you play Crane but then choose not to buy any city improvements this turn? Probably.
- Can you play Engineer if you don't have any city walls (or un-walled cities) available? Not sure, probably not?
- Can you play Smith with no knights on the board, or with all knights at max level? Eh... sure?
- Can you play Smith with level 1 knights on the board, but choose not to upgrade any to level 2? Maybe? Depending on how we interpret "up to two"?