So my android 4.3 personal dictionary abbreviation/expansions work fine in some text inputs such as memo pad or text messaging, but it seems if the input is specialized such that it knows to expect an email or a phone number, the expansions are not available. Is there a way to make these always available when the keyboard is active without exception? If not, how can I otherwise avoid typing out my long email address when setting up settings, filling out web forms, etc?
As you've noticed, the app you're typing into can tell a "hint" to the keyboard app (or input method) to let it know what kind of text to expect, such as an email address. It's then up to the keyboard app to decide how to interpret that. For example, it can look in your contacts for email addresses.
You haven't said which keyboard app you're using, but from what you've described it seems that this app chooses to ignore expansions when it receives this hint. Since it's up to the keyboard app what to do, you might like to install and try out a different keyboard app. I don't use expansions/abbreviations myself, so I can't recommend one, but there must be one out there that lets you use them for email addresses, phone numbers, etc. as well as normal text.
Do bear in mind that a keyboard app can record all the text you type, so be extra careful to only install apps from reputable sources and developers.