Actully you are free to use non-reflected structs and even classes, which in matter of fact engine using in it’s own code (So far i only see 2-3 cases of non-reflected classes, but there ton of structs) like FVector and FRotator which even have function in them which reflection system does not support functions in structs. Ofcorse by doing that those classes and structs won’t be managed by engine so you need to take care of cleaning them. There possibility of plugging them to blueprint via static blueprint functions in sperate UObject class, which is what engine do with it’s non-reflected structs.
Not sure about constructor in struct as UObject classes are so restrictive in terms of constructor because they are initiated in non-standard way (by holding default object CBO and copy it in memory), structs don’t have that, but i never tried using constructors yet.