When a function list is targeted by a ReplaceAll, the PlotStyle for each function is lost.
Example with default attributes:
GraphicsGrid[{{
Plot[{Sin@Cos@t, Cos@Sin@t}, {t, 0, Pi}],
Plot[{s@c@t, c@s@t} /. {s -> Sin, c -> Cos}, {t, 0, Pi}]
}}]

Example with custom attributes:
GraphicsGrid[{{
Plot[{Sin@Cos@t, Cos@Sin@t}, {t, 0, Pi}, PlotStyle -> {Dashed, {Red, Dotted}}],
Plot[{s@c@t, c@s@t} /. {s -> Sin, c -> Cos}, {t, 0, Pi},
PlotStyle -> {Dashed, {Red, Dotted}}]
}}]

That is because of the way Plot explore its arguments before actually plotting.
What is the most elegant way to specify individual PlotStyle attributes for the functions, and if possible, regain the default attributes when PlotStyle is not specified?
Note:
Of course doing
Plot[{f1 /. replist, f2 /. replist ....} ..]
is not considered “elegant” 😀
I would probably just use either:
Plot[{s@c@t, c@s@t} /. {s -> Sin, c -> Cos} // Evaluate, {t, 0, Pi}]Or:
Plot[#, {t, 0, Pi}] &[{s@c@t, c@s@t} /. {s -> Sin, c -> Cos}]