Are there any caching/performance/significant differences between c# code placed in <script runat='server'></script> as oppose in the code-behind?
<script runat='server'></script>
No, no performance difference, in the end this is always compiled to an assembly anyway.