I often use the terms always and never, as in I always raise at least 3x, or I never limp. But the truth is that there are some situations in which I do limp, and times that I min raise, or flat call a min raise. To me the point of raising is to limit the number of players in a pot. Some say it is to start building a pot up. For me it is to make it costly enough that players don't want to risk calling with low value hands. My preference is to see the flop heads up against one player. I might limp or flat call a min raise in the case of too many players being in the pot in front of me, which means it would cost too much for me to raise enough for them to not be getting the right pot odds
to call. There might be other situations in which I might limp or flat call.
As for why flat calling is considered fishy, I think has to do with demonstrating strength or a lack of strength. Obviously, if you show a lack of strength then you're likely to draw aggression from players left to act behind you. Flat calling with a marginal hand, is a bit like announcing that you have a marginal hand, which is kind of a fishy move.