title: Using ReplaceAll when plotting a functions list
body: <p>When a function list is targeted by a ReplaceAll, the PlotStyle for each function is lost.  </p>
  
  <p>Example with default attributes:  </p>
  
  <pre><code>GraphicsGrid[{{
     Plot[{Sin@Cos@t, Cos@Sin@t}, {t, 0, Pi}],
     Plot[{s@c@t, c@s@t} /. {s -&gt; Sin, c -&gt; Cos}, {t, 0, Pi}]
     }}]
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/wKqQ6.png" alt="enter image description here">
  Example with custom attributes:  </p>
  
  <pre><code>GraphicsGrid[{{
    Plot[{Sin@Cos@t, Cos@Sin@t}, {t, 0, Pi}, PlotStyle -&gt; {Dashed, {Red, Dotted}}],
    Plot[{s@c@t, c@s@t} /. {s -&gt; Sin, c -&gt; Cos}, {t, 0, Pi}, 
                                             PlotStyle -&gt; {Dashed, {Red, Dotted}}]
     }}]
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/pU0hi.png" alt="enter image description here"></p>
  
  <p>That is because of the way Plot explore its arguments before actually plotting.</p>
  
  <p>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?  </p>
  
  <p>Note:  </p>
  
  <p>Of course doing  </p>
  
  <pre><code> Plot[{f1 /. replist, f2 /. replist ....} ..]
  </code></pre>
  
  <p>is not considered "elegant" :D</p>