Using circular buffer over UART
Can the master busy-wait on the UART waiting for responses? Can it collect and process the received characters fast enough to avoid overruns? If not then you need a buffer.

If the longest message will fit in the buffer and you reset it when sending each command then it doesn't need to be circular. 


  I am willing to use serialization to transmit a data structure... in this format "variable_name:valueXXX"... 
  
  Is there a better way to standardize the length of data passed over
  uart?


I presume the 'XXX's pad the string out to a fixed length. It could be more efficient to create a variable length string with single character separators, or even send the numbers in raw binary, but if bandwidth isn't an issue then what you are doing is fine.

You might also want to think about what to do if the master and slave get out of sync. For example if the slave is sending a structure but the master is expecting a reply to a different command, some of the characters in the structure message might be misinterpreted as valid responses. Also this,

Master [Tx] -- GET_VALUE--&gt; [Rx] Slave
Master [Rx] &lt;-- 0x05 -------- [Tx] Slave 


is troubling. Can the 'value' be any binary number? If so then how will you know it is not a response to some other command? Critical responses such as I_AM_BUSY and ACK should have unique values that cannot appear in other data.