I know nothing about how to create a widget. Looking at calc.wdg and calc.app on the device shows them to be different in size, so I doubt you can just use an app for a widget. The widgets also aren't set to be executable in the filesystem, so I would guess that they are loaded into the main screen application and run inside there. They link against /ebrmain/lib/libwidget.so, which the regular apps don't do, so they are built in a different way. Finally, apps generally use the full screen, so I would guess they wouldn't work as widgets, even if they ran.
So, I would say that creating widgets is quite different from creating apps.