"latest smart forms"… this has been done for the last 15 years…
To 1): The first distinction is to make whether the PDF viewer used understands (Acrobat) JavaScript.
If not, your smart form will remain dumb, and there is nothing you can change (if the viewer allows submitting data, you could do a server-side data processing and form filling and return the filled PDF to the client).
If the PDF viewer understands (Acrobat) JavaScript, you have the possibility to test for the kind of viewer, its version, as well whether it is external (which means whether you view the form under a web browser). See the Acrobat JavaScript documentation (which is part of the Acrobat SDK, downloadable from the Adobe website).
To 2): The answer is simple: no. This is not allowed (and implemented) for security reasons.
Hope this can help.
Max Wyss.