混同されているのでは。
buttonをクリックした際の挙動でclickメソッドを使う場合は「要素がきちんと読み込まれてから」処理するために「$(function(){...});」を使用しますが、
「要素がきちんと読み込まれてから」とは、ハンドラ|リスナを定義する対象要素の話です。ここで言うとbutton要素のことです。
「onclick」でfunctionを実行する場合はそれが不要なのはなぜでしょうか?
そういうわけで、「onclick」でハンドラを定義する場合、その属性を持っている要素が存在することは自明ですから、必ず「要素がきちんと読み込まれてから」処理されることになります。
画面表示から速攻でonclickすると処理できないケースなどあるのでしょうか?
たとえば、↓これはエラーになります。
html
1<button onclick="functionName();">実行</button>
2<script>
3$('button').click();
4</script>
5<script>
6function functionName(){
7 alert('hoge');
8}
9</script>
しかし、これは関数定義と実行のタイミングの問題であって、「要素がきちんと読み込まれてから」という話とは関係ありません。
質問の変更にあわせて追記
functionName()は何処に置いてもonclickで実行されますが、画面表示から速攻でonclickすると処理できないケースなどあるのでしょうか?
上記のとおり、ありえます。
さらに言えば、イベントとかDOMとか、その辺のわずらわしい話を取っ払って、↓このように書いてもエラーになります。
html
1<script>
2 functionName();
3</script>
4<script>
5 function functionName(){
6 alert('hoge');
7 }
8</script>
JavaScript はこのような依存関係を記述することを苦手(というか放棄)しています。
ただ、最近のJavaScriptには便利なものがありますので、こちらをご利用になるといいでしょう。
import - JavaScript | MDN