I think the boolean variable for recursion will fail if you have more than 200 records as next 200 records will have TRUE value and it will not fire the trigger
Yes, isEmpty() also serves the purpose but isBlank() also checks for white spaces. You can check the documentation here for the String class - developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_string.htm