I've had a handful of these projects. The problem really lies in the fact that Oracle has zero client side capabilities offered to the developer. Everything the dev tools offer is server side, except for painting the screen, but even that is sort of restricted.
I've written JS to press buttons (so screens never time-out), large display windows (so data collection people can read what they scanned from 30 feet), auto field updates (so exit events automatically trigger), entry validation (so the server doesnt get informed of entry until the entry is valid).
But, you're right. The big question is always; can we maintain this code, and what happens when we make changes. Many companies are not comfortable with development that is non-standard.
Good Luck!