Is there any hack to change a custom field type without creating a new field, and then bulk updating every issue?
There’s a database hack for some conversions. You can convert a single select into a multiselect, short text into long and between date and date/time just by changing the type of field in the customfield table. In theory, you can go the other way, but you need to be careful (e.g. Check that no long text is over 254 characters if you’re going to convert to short, and a multi-select must have only 0 or 1 entry to convert to a single)
Obviously, all of this is when JIRA is offline, and you’ve backed it up beforehand. You’ll need to check the searchers are ok and re-index once you’ve made the change too.
The only problem is I have Jira cloud.
Ah, then, no, there’s nothing you can do directly. A Connect add-on that can do mass edits, or some scripting over REST can still do it, but that would just be automating the “create new field and bulk edit” process you already mentioned.