It's normal behavior for you to not receive a callback upon initial joining with the AP. Although you push the function pointers beforehand, the actual callbacks are not registered until after you've successfully joined an AP (wifi.c line 448). If you want information about the initial joining of an AP you should check the return of wiced_network_up(...).
You should, however, see the callback upon re connection. Just to clarify, this snip wants you to quickly power cycle your AP, not leave it off. I just tested this snip on a BCM4343W and got good behavior:
The point is the callbacks for up or down are not working reliably.
*Sometimes* the link_up callback is not called when the AP is back.
Try power-on/power-off your AP multiple times, I think you can hit this issue.
Similar issue was asked multiple times:
You refer to post: When will link_up_callback/link_down_callback be called?
As Naren stated in that post, that's the network actually dropping which could be caused by numerous factors. NOT a problem with the callbacks. Is there something to support it's a callback incorrectly firing and not an actual dropping of the link?
You also refer to: WiFi STA link status up or down callbacks
This is a separate problem entirely and likely hardware specific. The customer was having problems with link_downs not being pushed through until after connection up. They did fire, but they were getting stuck somewhere along the way, likely in the firmware--out of the SDKs reach.