There is no inherent problem with storing JS behaviors on the form. But realize the following:
- By definition, these behaviors are tightly coupled to this form, reducing reusability. Depending on how you distribute responsibilities, this may be good or bad. (I tend to think bad but YMMV.) Using the RT area to inject a remote .js file is more maintainable.
- You cannot prevent people with Form Editor access from deleting your code -- and, worse yet, it will look like an empty RT area. It's not usually desirable to leave code vulnerable, but if you're the only user with access, it's fine.
- If you add Visibility Rules, your code will run every time the RT area is rendered. This can be really bad, though it can be avoided by setting a flag in a parent scope.
- If you enable Known Lead HTML, the code in the RT area will not run for known leads. This may or may not matter depending on how you're enhancing the form; populating hidden fields, for example, is something you're likely going to want to do whether or not the lead is known.
Overall I've seen little reason to do this as opposed to serving forms-enhancing code separately, but you may have a niche case where it's useful.