I don't know if the function dojo.marginBox or dojo.contentBox can be used for Inline Element, but seems it broke on some form elements which may have different default padding/border size on different user agent. How to deal with that?
Also regarding the box model, dojo takes some simplified solution to get the node's content model(by checking browser and render mode) and seems just ignores the "xxx-box-sizing" style on the node. Is that acceptable? I figure out that the "input type='text'" seems render by border-box in firefox quirk mode, but dojo uses "content-box" anyway.

You bring up a couple of
You bring up a couple of issues and I'll try to address them in turn:
First, padding and border have different implications for "content" size depending on the rendering mode and the standards/quirksmode on a particular browser. To handle this, we have the dojo.marginBox() method which handles the *outside* size of the box irrespective of the rendering mode. The contentBox() has a very specific definition which does something you're not expecting, so I suggest you look into marginBox() instead.
Secondly, it is absolutely a design decision to NOT handle border-box modifiers. The performance implications of attempting to figure out which policy is in effect are prohibitive and so we simply chose not to do so. There are several documented issues with native controls being sized in Firefox, but we're not special casing for FF yet. If you can generate a test case, we'll look into it.
Regards